{
  "contractName": "WitnetCBOR",
  "abi": [
    {
      "inputs": [],
      "name": "EmptyArray",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "length",
          "type": "uint256"
        }
      ],
      "name": "InvalidLengthEncoding",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "read",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "expected",
          "type": "uint256"
        }
      ],
      "name": "UnexpectedMajorType",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "unexpected",
          "type": "uint256"
        }
      ],
      "name": "UnsupportedMajorType",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "primitive",
          "type": "uint256"
        }
      ],
      "name": "UnsupportedPrimitive",
      "type": "error"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EmptyArray\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidLengthEncoding\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"read\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"}],\"name\":\"UnexpectedMajorType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"unexpected\",\"type\":\"uint256\"}],\"name\":\"UnsupportedMajorType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"primitive\",\"type\":\"uint256\"}],\"name\":\"UnsupportedPrimitive\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"The Witnet Foundation.\",\"details\":\"Most of the logic has been borrowed from Patrick Gansterer\\u2019s cbor.js library: https://github.com/paroga/cbor-js\",\"kind\":\"dev\",\"methods\":{},\"title\":\"A minimalistic implementation of \\u201cRFC 7049 Concise Binary Object Representation\\u201d\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library leverages a buffer-like structure for step-by-step decoding of bytes so as to minimize the gas cost of decoding them into a useful native type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/libs/WitnetCBOR.sol\":\"WitnetCBOR\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0xa14570492eb5a313ddbacae0185c850ec99c67211eb33989a5e21d31bf06a150\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e83c11edb49cab6a767c0b685825bc22ece0d3d2897e0d54fe1923df5cc76ba5\",\"dweb:/ipfs/QmdLDgCc3tnKbgRrXwfNzsg6uUDirNmjvBB8V3iMmnD69a\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xb346547ff731163beea2c657c52675cdf7936691d566a76a045577cf9c34ade0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d4b5b6424a033584b41f1204d635db98fda9ca9bd2a614c9d82539a3e4e6529\",\"dweb:/ipfs/QmW6Qy3wWpzHSECYaCPaf9LWGfPqWDKVoP2kPSNNQu7LMQ\"]}},\"version\":1}",
  "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a5bfe42e8bf3fec6aa4642967f703d5bc2a70cb662ef6d7ee4a5d8d2d41927dd64736f6c63430008190033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a5bfe42e8bf3fec6aa4642967f703d5bc2a70cb662ef6d7ee4a5d8d2d41927dd64736f6c63430008190033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "536:19008:66:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;536:19008:66;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "536:19008:66:-:0;;;;;;;;",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.8.0 <0.9.0;\r\n\r\nimport \"./WitnetBuffer.sol\";\r\n\r\n/// @title A minimalistic implementation of “RFC 7049 Concise Binary Object Representation”\r\n/// @notice This library leverages a buffer-like structure for step-by-step decoding of bytes so as to minimize\r\n/// the gas cost of decoding them into a useful native type.\r\n/// @dev Most of the logic has been borrowed from Patrick Gansterer’s cbor.js library: https://github.com/paroga/cbor-js\r\n/// @author The Witnet Foundation.\r\n\r\nlibrary WitnetCBOR {\r\n\r\n  using WitnetBuffer for WitnetBuffer.Buffer;\r\n  using WitnetCBOR for WitnetCBOR.CBOR;\r\n\r\n  /// Data struct following the RFC-7049 standard: Concise Binary Object Representation.\r\n  struct CBOR {\r\n      WitnetBuffer.Buffer buffer;\r\n      uint8 initialByte;\r\n      uint8 majorType;\r\n      uint8 additionalInformation;\r\n      uint64 len;\r\n      uint64 tag;\r\n  }\r\n\r\n  uint8 internal constant MAJOR_TYPE_INT = 0;\r\n  uint8 internal constant MAJOR_TYPE_NEGATIVE_INT = 1;\r\n  uint8 internal constant MAJOR_TYPE_BYTES = 2;\r\n  uint8 internal constant MAJOR_TYPE_STRING = 3;\r\n  uint8 internal constant MAJOR_TYPE_ARRAY = 4;\r\n  uint8 internal constant MAJOR_TYPE_MAP = 5;\r\n  uint8 internal constant MAJOR_TYPE_TAG = 6;\r\n  uint8 internal constant MAJOR_TYPE_CONTENT_FREE = 7;\r\n\r\n  uint32 internal constant UINT32_MAX = type(uint32).max;\r\n  uint64 internal constant UINT64_MAX = type(uint64).max;\r\n  \r\n  error EmptyArray();\r\n  error InvalidLengthEncoding(uint length);\r\n  error UnexpectedMajorType(uint read, uint expected);\r\n  error UnsupportedPrimitive(uint primitive);\r\n  error UnsupportedMajorType(uint unexpected);  \r\n\r\n  modifier isMajorType(\r\n      WitnetCBOR.CBOR memory cbor,\r\n      uint8 expected\r\n  ) {\r\n    if (cbor.majorType != expected) {\r\n      revert UnexpectedMajorType(cbor.majorType, expected);\r\n    }\r\n    _;\r\n  }\r\n\r\n  modifier notEmpty(WitnetBuffer.Buffer memory buffer) {\r\n    if (buffer.data.length == 0) {\r\n      revert WitnetBuffer.EmptyBuffer();\r\n    }\r\n    _;\r\n  }\r\n\r\n  function eof(CBOR memory cbor)\r\n    internal pure\r\n    returns (bool)\r\n  {\r\n    return cbor.buffer.cursor >= cbor.buffer.data.length;\r\n  }\r\n\r\n  /// @notice Decode a CBOR structure from raw bytes.\r\n  /// @dev This is the main factory for CBOR instances, which can be later decoded into native EVM types.\r\n  /// @param bytecode Raw bytes representing a CBOR-encoded value.\r\n  /// @return A `CBOR` instance containing a partially decoded value.\r\n  function fromBytes(bytes memory bytecode)\r\n    internal pure\r\n    returns (CBOR memory)\r\n  {\r\n    WitnetBuffer.Buffer memory buffer = WitnetBuffer.Buffer(bytecode, 0);\r\n    return fromBuffer(buffer);\r\n  }\r\n\r\n  /// @notice Decode a CBOR structure from raw bytes.\r\n  /// @dev This is an alternate factory for CBOR instances, which can be later decoded into native EVM types.\r\n  /// @param buffer A Buffer structure representing a CBOR-encoded value.\r\n  /// @return A `CBOR` instance containing a partially decoded value.\r\n  function fromBuffer(WitnetBuffer.Buffer memory buffer)\r\n    internal pure\r\n    notEmpty(buffer)\r\n    returns (CBOR memory)\r\n  {\r\n    uint8 initialByte;\r\n    uint8 majorType = 255;\r\n    uint8 additionalInformation;\r\n    uint64 tag = UINT64_MAX;\r\n    uint256 len;\r\n    bool isTagged = true;\r\n    while (isTagged) {\r\n      // Extract basic CBOR properties from input bytes\r\n      initialByte = buffer.readUint8();\r\n      len ++;\r\n      majorType = initialByte >> 5;\r\n      additionalInformation = initialByte & 0x1f;\r\n      // Early CBOR tag parsing.\r\n      if (majorType == MAJOR_TYPE_TAG) {\r\n        uint _cursor = buffer.cursor;\r\n        tag = readLength(buffer, additionalInformation);\r\n        len += buffer.cursor - _cursor;\r\n      } else {\r\n        isTagged = false;\r\n      }\r\n    }\r\n    if (majorType > MAJOR_TYPE_CONTENT_FREE) {\r\n      revert UnsupportedMajorType(majorType);\r\n    }\r\n    return CBOR(\r\n      buffer,\r\n      initialByte,\r\n      majorType,\r\n      additionalInformation,\r\n      uint64(len),\r\n      tag\r\n    );\r\n  }\r\n\r\n  function fork(WitnetCBOR.CBOR memory self)\r\n    internal pure\r\n    returns (WitnetCBOR.CBOR memory)\r\n  {\r\n    return CBOR({\r\n      buffer: self.buffer.fork(),\r\n      initialByte: self.initialByte,\r\n      majorType: self.majorType,\r\n      additionalInformation: self.additionalInformation,\r\n      len: self.len,\r\n      tag: self.tag\r\n    });\r\n  }\r\n\r\n  function settle(CBOR memory self)\r\n      internal pure\r\n      returns (WitnetCBOR.CBOR memory)\r\n  {\r\n    if (!self.eof()) {\r\n      return fromBuffer(self.buffer);\r\n    } else {\r\n      return self;\r\n    }\r\n  }\r\n\r\n  function skip(CBOR memory self)\r\n      internal pure\r\n      returns (WitnetCBOR.CBOR memory)\r\n  {\r\n    if (\r\n      self.majorType == MAJOR_TYPE_INT\r\n        || self.majorType == MAJOR_TYPE_NEGATIVE_INT\r\n        || (\r\n          self.majorType == MAJOR_TYPE_CONTENT_FREE \r\n            && self.additionalInformation >= 25\r\n            && self.additionalInformation <= 27\r\n        )\r\n    ) {\r\n      self.buffer.cursor += self.peekLength();\r\n    } else if (\r\n        self.majorType == MAJOR_TYPE_STRING\r\n          || self.majorType == MAJOR_TYPE_BYTES\r\n    ) {\r\n      uint64 len = readLength(self.buffer, self.additionalInformation);\r\n      self.buffer.cursor += len;\r\n    } else if (\r\n      self.majorType == MAJOR_TYPE_ARRAY\r\n        || self.majorType == MAJOR_TYPE_MAP\r\n    ) { \r\n      self.len = readLength(self.buffer, self.additionalInformation);      \r\n    } else if (\r\n       self.majorType != MAJOR_TYPE_CONTENT_FREE\r\n        || (\r\n          self.additionalInformation != 20\r\n            && self.additionalInformation != 21\r\n        )\r\n    ) {\r\n      revert(\"WitnetCBOR.skip: unsupported major type\");\r\n    }\r\n    return self;\r\n  }\r\n\r\n  function peekLength(CBOR memory self)\r\n    internal pure\r\n    returns (uint64)\r\n  {\r\n    if (self.additionalInformation < 24) {\r\n      return 0;\r\n    } else if (self.additionalInformation < 28) {\r\n      return uint64(1 << (self.additionalInformation - 24));\r\n    } else {\r\n      revert InvalidLengthEncoding(self.additionalInformation);\r\n    }\r\n  }\r\n\r\n  function readArray(CBOR memory self)\r\n    internal pure\r\n    isMajorType(self, MAJOR_TYPE_ARRAY)\r\n    returns (CBOR[] memory items)\r\n  {\r\n    // read array's length and move self cursor forward to the first array element:\r\n    uint64 len = readLength(self.buffer, self.additionalInformation);\r\n    items = new CBOR[](len + 1);\r\n    for (uint ix = 0; ix < len; ix ++) {\r\n      // settle next element in the array:\r\n      self = self.settle();\r\n      // fork it and added to the list of items to be returned:\r\n      items[ix] = self.fork();\r\n      if (self.majorType == MAJOR_TYPE_ARRAY) {\r\n        CBOR[] memory _subitems = self.readArray();\r\n        // move forward to the first element after inner array:\r\n        self = _subitems[_subitems.length - 1];\r\n      } else if (self.majorType == MAJOR_TYPE_MAP) {\r\n        CBOR[] memory _subitems = self.readMap();\r\n        // move forward to the first element after inner map:\r\n        self = _subitems[_subitems.length - 1];\r\n      } else {\r\n        // move forward to the next element:\r\n        self.skip();\r\n      }\r\n    }\r\n    // return self cursor as extra item at the end of the list,\r\n    // as to optimize recursion when jumping over nested arrays:\r\n    items[len] = self;\r\n  }\r\n\r\n  function readMap(CBOR memory self)\r\n    internal pure\r\n    isMajorType(self, MAJOR_TYPE_MAP)\r\n    returns (CBOR[] memory items)\r\n  {\r\n    // read number of items within the map and move self cursor forward to the first inner element:\r\n    uint64 len = readLength(self.buffer, self.additionalInformation) * 2;\r\n    items = new CBOR[](len + 1);\r\n    for (uint ix = 0; ix < len; ix ++) {\r\n      // settle next element in the array:\r\n      self = self.settle();\r\n      // fork it and added to the list of items to be returned:\r\n      items[ix] = self.fork();\r\n      if (ix % 2 == 0 && self.majorType != MAJOR_TYPE_STRING) {\r\n        revert UnexpectedMajorType(self.majorType, MAJOR_TYPE_STRING);\r\n      } else if (self.majorType == MAJOR_TYPE_ARRAY || self.majorType == MAJOR_TYPE_MAP) {\r\n        CBOR[] memory _subitems = (self.majorType == MAJOR_TYPE_ARRAY\r\n            ? self.readArray()\r\n            : self.readMap()\r\n        );\r\n        // move forward to the first element after inner array or map:\r\n        self = _subitems[_subitems.length - 1];\r\n      } else {\r\n        // move forward to the next element:\r\n        self.skip();\r\n      }\r\n    }\r\n    // return self cursor as extra item at the end of the list,\r\n    // as to optimize recursion when jumping over nested arrays:\r\n    items[len] = self;\r\n  }\r\n\r\n  /// Reads the length of the settle CBOR item from a buffer, consuming a different number of bytes depending on the\r\n  /// value of the `additionalInformation` argument.\r\n  function readLength(\r\n      WitnetBuffer.Buffer memory buffer,\r\n      uint8 additionalInformation\r\n    ) \r\n    internal pure\r\n    returns (uint64)\r\n  {\r\n    if (additionalInformation < 24) {\r\n      return additionalInformation;\r\n    }\r\n    if (additionalInformation == 24) {\r\n      return buffer.readUint8();\r\n    }\r\n    if (additionalInformation == 25) {\r\n      return buffer.readUint16();\r\n    }\r\n    if (additionalInformation == 26) {\r\n      return buffer.readUint32();\r\n    }\r\n    if (additionalInformation == 27) {\r\n      return buffer.readUint64();\r\n    }\r\n    if (additionalInformation == 31) {\r\n      return UINT64_MAX;\r\n    }\r\n    revert InvalidLengthEncoding(additionalInformation);\r\n  }\r\n\r\n  /// @notice Read a `CBOR` structure into a native `bool` value.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return The value represented by the input, as a `bool` value.\r\n  function readBool(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_CONTENT_FREE)\r\n    returns (bool)\r\n  {\r\n    if (cbor.additionalInformation == 20) {\r\n      return false;\r\n    } else if (cbor.additionalInformation == 21) {\r\n      return true;\r\n    } else {\r\n      revert UnsupportedPrimitive(cbor.additionalInformation);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `bytes` value.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return output The value represented by the input, as a `bytes` value.   \r\n  function readBytes(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_BYTES)\r\n    returns (bytes memory output)\r\n  {\r\n    cbor.len = readLength(\r\n      cbor.buffer,\r\n      cbor.additionalInformation\r\n    );\r\n    if (cbor.len == UINT32_MAX) {\r\n      // These checks look repetitive but the equivalent loop would be more expensive.\r\n      uint32 length = uint32(_readIndefiniteStringLength(\r\n        cbor.buffer,\r\n        cbor.majorType\r\n      ));\r\n      if (length < UINT32_MAX) {\r\n        output = abi.encodePacked(cbor.buffer.read(length));\r\n        length = uint32(_readIndefiniteStringLength(\r\n          cbor.buffer,\r\n          cbor.majorType\r\n        ));\r\n        if (length < UINT32_MAX) {\r\n          output = abi.encodePacked(\r\n            output,\r\n            cbor.buffer.read(length)\r\n          );\r\n        }\r\n      }\r\n    } else {\r\n      return cbor.buffer.read(uint32(cbor.len));\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a `fixed16` value.\r\n  /// @dev Due to the lack of support for floating or fixed point arithmetic in the EVM, this method offsets all values\r\n  /// by 5 decimal orders so as to get a fixed precision of 5 decimal positions, which should be OK for most `fixed16`\r\n  /// use cases. In other words, the output of this method is 10,000 times the actual value, encoded into an `int32`.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return The value represented by the input, as an `int128` value.\r\n  function readFloat16(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_CONTENT_FREE)\r\n    returns (int32)\r\n  {\r\n    if (cbor.additionalInformation == 25) {\r\n      return cbor.buffer.readFloat16();\r\n    } else {\r\n      revert UnsupportedPrimitive(cbor.additionalInformation);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a `fixed32` value.\r\n  /// @dev Due to the lack of support for floating or fixed point arithmetic in the EVM, this method offsets all values\r\n  /// by 9 decimal orders so as to get a fixed precision of 9 decimal positions, which should be OK for most `fixed64`\r\n  /// use cases. In other words, the output of this method is 10^9 times the actual value, encoded into an `int`.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return The value represented by the input, as an `int` value.\r\n  function readFloat32(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_CONTENT_FREE)\r\n    returns (int)\r\n  {\r\n    if (cbor.additionalInformation == 26) {\r\n      return cbor.buffer.readFloat32();\r\n    } else {\r\n      revert UnsupportedPrimitive(cbor.additionalInformation);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a `fixed64` value.\r\n  /// @dev Due to the lack of support for floating or fixed point arithmetic in the EVM, this method offsets all values\r\n  /// by 15 decimal orders so as to get a fixed precision of 15 decimal positions, which should be OK for most `fixed64`\r\n  /// use cases. In other words, the output of this method is 10^15 times the actual value, encoded into an `int`.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return The value represented by the input, as an `int` value.\r\n  function readFloat64(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_CONTENT_FREE)\r\n    returns (int)\r\n  {\r\n    if (cbor.additionalInformation == 27) {\r\n      return cbor.buffer.readFloat64();\r\n    } else {\r\n      revert UnsupportedPrimitive(cbor.additionalInformation);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `int128[]` value whose inner values follow the same convention \r\n  /// @notice as explained in `decodeFixed16`.\r\n  /// @param cbor An instance of `CBOR`.\r\n  function readFloat16Array(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_ARRAY)\r\n    returns (int32[] memory values)\r\n  {\r\n    uint64 length = readLength(cbor.buffer, cbor.additionalInformation);\r\n    if (length < UINT64_MAX) {\r\n      values = new int32[](length);\r\n      for (uint64 i = 0; i < length; ) {\r\n        CBOR memory item = fromBuffer(cbor.buffer);\r\n        values[i] = readFloat16(item);\r\n        unchecked {\r\n          i ++;\r\n        }\r\n      }\r\n    } else {\r\n      revert InvalidLengthEncoding(length);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `int128` value.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return The value represented by the input, as an `int128` value.\r\n  function readInt(CBOR memory cbor)\r\n    internal pure\r\n    returns (int)\r\n  {\r\n    if (cbor.majorType == 1) {\r\n      uint64 _value = readLength(\r\n        cbor.buffer,\r\n        cbor.additionalInformation\r\n      );\r\n      return int(-1) - int(uint(_value));\r\n    } else if (cbor.majorType == 0) {\r\n      // Any `uint64` can be safely casted to `int128`, so this method supports majorType 1 as well so as to have offer\r\n      // a uniform API for positive and negative numbers\r\n      return int(readUint(cbor));\r\n    }\r\n    else {\r\n      revert UnexpectedMajorType(cbor.majorType, 1);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `int[]` value.\r\n  /// @param cbor instance of `CBOR`.\r\n  /// @return array The value represented by the input, as an `int[]` value.\r\n  function readIntArray(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_ARRAY)\r\n    returns (int[] memory array)\r\n  {\r\n    uint64 length = readLength(cbor.buffer, cbor.additionalInformation);\r\n    if (length < UINT64_MAX) {\r\n      array = new int[](length);\r\n      for (uint i = 0; i < length; ) {\r\n        CBOR memory item = fromBuffer(cbor.buffer);\r\n        array[i] = readInt(item);\r\n        unchecked {\r\n          i ++;\r\n        }\r\n      }\r\n    } else {\r\n      revert InvalidLengthEncoding(length);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `string` value.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return text The value represented by the input, as a `string` value.\r\n  function readString(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_STRING)\r\n    returns (string memory text)\r\n  {\r\n    cbor.len = readLength(cbor.buffer, cbor.additionalInformation);\r\n    if (cbor.len == UINT64_MAX) {\r\n      bool _done;\r\n      while (!_done) {\r\n        uint64 length = _readIndefiniteStringLength(\r\n          cbor.buffer,\r\n          cbor.majorType\r\n        );\r\n        if (length < UINT64_MAX) {\r\n          text = string(abi.encodePacked(\r\n            text,\r\n            cbor.buffer.readText(length / 4)\r\n          ));\r\n        } else {\r\n          _done = true;\r\n        }\r\n      }\r\n    } else {\r\n      return string(cbor.buffer.readText(cbor.len));\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `string[]` value.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return strings The value represented by the input, as an `string[]` value.\r\n  function readStringArray(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_ARRAY)\r\n    returns (string[] memory strings)\r\n  {\r\n    uint length = readLength(cbor.buffer, cbor.additionalInformation);\r\n    if (length < UINT64_MAX) {\r\n      strings = new string[](length);\r\n      for (uint i = 0; i < length; ) {\r\n        CBOR memory item = fromBuffer(cbor.buffer);\r\n        strings[i] = readString(item);\r\n        unchecked {\r\n          i ++;\r\n        }\r\n      }\r\n    } else {\r\n      revert InvalidLengthEncoding(length);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `uint64` value.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return The value represented by the input, as an `uint64` value.\r\n  function readUint(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_INT)\r\n    returns (uint)\r\n  {\r\n    return readLength(\r\n      cbor.buffer,\r\n      cbor.additionalInformation\r\n    );\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `uint64[]` value.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return values The value represented by the input, as an `uint64[]` value.\r\n  function readUintArray(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_ARRAY)\r\n    returns (uint[] memory values)\r\n  {\r\n    uint64 length = readLength(cbor.buffer, cbor.additionalInformation);\r\n    if (length < UINT64_MAX) {\r\n      values = new uint[](length);\r\n      for (uint ix = 0; ix < length; ) {\r\n        CBOR memory item = fromBuffer(cbor.buffer);\r\n        values[ix] = readUint(item);\r\n        unchecked {\r\n          ix ++;\r\n        }\r\n      }\r\n    } else {\r\n      revert InvalidLengthEncoding(length);\r\n    }\r\n  }  \r\n\r\n  /// Read the length of a CBOR indifinite-length item (arrays, maps, byte strings and text) from a buffer, consuming\r\n  /// as many bytes as specified by the first byte.\r\n  function _readIndefiniteStringLength(\r\n      WitnetBuffer.Buffer memory buffer,\r\n      uint8 majorType\r\n    )\r\n    private pure\r\n    returns (uint64 len)\r\n  {\r\n    uint8 initialByte = buffer.readUint8();\r\n    if (initialByte == 0xff) {\r\n      return UINT64_MAX;\r\n    }\r\n    len = readLength(\r\n      buffer,\r\n      initialByte & 0x1f\r\n    );\r\n    if (len >= UINT64_MAX) {\r\n      revert InvalidLengthEncoding(len);\r\n    } else if (majorType != (initialByte >> 5)) {\r\n      revert UnexpectedMajorType((initialByte >> 5), majorType);\r\n    }\r\n  }\r\n \r\n}",
  "sourcePath": "C:\\Users\\guill\\github\\witnet\\witnet-solidity-bridge\\contracts\\libs\\WitnetCBOR.sol",
  "ast": {
    "absolutePath": "project:/contracts/libs/WitnetCBOR.sol",
    "exportedSymbols": {
      "WitnetBuffer": [
        19191
      ],
      "WitnetCBOR": [
        20734
      ]
    },
    "id": 20735,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 19193,
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:66"
      },
      {
        "absolutePath": "project:/contracts/libs/WitnetBuffer.sol",
        "file": "./WitnetBuffer.sol",
        "id": 19194,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 20735,
        "sourceUnit": 19192,
        "src": "70:28:66",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "canonicalName": "WitnetCBOR",
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": {
          "id": 19195,
          "nodeType": "StructuredDocumentation",
          "src": "102:432:66",
          "text": "@title A minimalistic implementation of “RFC 7049 Concise Binary Object Representation”\n @notice This library leverages a buffer-like structure for step-by-step decoding of bytes so as to minimize\n the gas cost of decoding them into a useful native type.\n @dev Most of the logic has been borrowed from Patrick Gansterer’s cbor.js library: https://github.com/paroga/cbor-js\n @author The Witnet Foundation."
        },
        "fullyImplemented": true,
        "id": 20734,
        "linearizedBaseContracts": [
          20734
        ],
        "name": "WitnetCBOR",
        "nameLocation": "544:10:66",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 19199,
            "libraryName": {
              "id": 19196,
              "name": "WitnetBuffer",
              "nameLocations": [
                "568:12:66"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 19191,
              "src": "568:12:66"
            },
            "nodeType": "UsingForDirective",
            "src": "562:43:66",
            "typeName": {
              "id": 19198,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 19197,
                "name": "WitnetBuffer.Buffer",
                "nameLocations": [
                  "585:12:66",
                  "598:6:66"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 17580,
                "src": "585:19:66"
              },
              "referencedDeclaration": 17580,
              "src": "585:19:66",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Buffer_$17580_storage_ptr",
                "typeString": "struct WitnetBuffer.Buffer"
              }
            }
          },
          {
            "global": false,
            "id": 19203,
            "libraryName": {
              "id": 19200,
              "name": "WitnetCBOR",
              "nameLocations": [
                "615:10:66"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 20734,
              "src": "615:10:66"
            },
            "nodeType": "UsingForDirective",
            "src": "609:37:66",
            "typeName": {
              "id": 19202,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 19201,
                "name": "WitnetCBOR.CBOR",
                "nameLocations": [
                  "630:10:66",
                  "641:4:66"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 19218,
                "src": "630:15:66"
              },
              "referencedDeclaration": 19218,
              "src": "630:15:66",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                "typeString": "struct WitnetCBOR.CBOR"
              }
            }
          },
          {
            "canonicalName": "WitnetCBOR.CBOR",
            "documentation": {
              "id": 19204,
              "nodeType": "StructuredDocumentation",
              "src": "652:86:66",
              "text": "Data struct following the RFC-7049 standard: Concise Binary Object Representation."
            },
            "id": 19218,
            "members": [
              {
                "constant": false,
                "id": 19207,
                "mutability": "mutable",
                "name": "buffer",
                "nameLocation": "783:6:66",
                "nodeType": "VariableDeclaration",
                "scope": 19218,
                "src": "763:26:66",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Buffer_$17580_storage_ptr",
                  "typeString": "struct WitnetBuffer.Buffer"
                },
                "typeName": {
                  "id": 19206,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 19205,
                    "name": "WitnetBuffer.Buffer",
                    "nameLocations": [
                      "763:12:66",
                      "776:6:66"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 17580,
                    "src": "763:19:66"
                  },
                  "referencedDeclaration": 17580,
                  "src": "763:19:66",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Buffer_$17580_storage_ptr",
                    "typeString": "struct WitnetBuffer.Buffer"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 19209,
                "mutability": "mutable",
                "name": "initialByte",
                "nameLocation": "804:11:66",
                "nodeType": "VariableDeclaration",
                "scope": 19218,
                "src": "798:17:66",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 19208,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "798:5:66",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 19211,
                "mutability": "mutable",
                "name": "majorType",
                "nameLocation": "830:9:66",
                "nodeType": "VariableDeclaration",
                "scope": 19218,
                "src": "824:15:66",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 19210,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "824:5:66",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 19213,
                "mutability": "mutable",
                "name": "additionalInformation",
                "nameLocation": "854:21:66",
                "nodeType": "VariableDeclaration",
                "scope": 19218,
                "src": "848:27:66",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 19212,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "848:5:66",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 19215,
                "mutability": "mutable",
                "name": "len",
                "nameLocation": "891:3:66",
                "nodeType": "VariableDeclaration",
                "scope": 19218,
                "src": "884:10:66",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 19214,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "884:6:66",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 19217,
                "mutability": "mutable",
                "name": "tag",
                "nameLocation": "910:3:66",
                "nodeType": "VariableDeclaration",
                "scope": 19218,
                "src": "903:10:66",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 19216,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "903:6:66",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "CBOR",
            "nameLocation": "749:4:66",
            "nodeType": "StructDefinition",
            "scope": 20734,
            "src": "742:177:66",
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 19221,
            "mutability": "constant",
            "name": "MAJOR_TYPE_INT",
            "nameLocation": "949:14:66",
            "nodeType": "VariableDeclaration",
            "scope": 20734,
            "src": "925:42:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 19219,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "925:5:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 19220,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "966:1:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 19224,
            "mutability": "constant",
            "name": "MAJOR_TYPE_NEGATIVE_INT",
            "nameLocation": "996:23:66",
            "nodeType": "VariableDeclaration",
            "scope": 20734,
            "src": "972:51:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 19222,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "972:5:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "31",
              "id": 19223,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1022:1:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 19227,
            "mutability": "constant",
            "name": "MAJOR_TYPE_BYTES",
            "nameLocation": "1052:16:66",
            "nodeType": "VariableDeclaration",
            "scope": 20734,
            "src": "1028:44:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 19225,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1028:5:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "32",
              "id": 19226,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1071:1:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 19230,
            "mutability": "constant",
            "name": "MAJOR_TYPE_STRING",
            "nameLocation": "1101:17:66",
            "nodeType": "VariableDeclaration",
            "scope": 20734,
            "src": "1077:45:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 19228,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1077:5:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "33",
              "id": 19229,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1121:1:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_3_by_1",
                "typeString": "int_const 3"
              },
              "value": "3"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 19233,
            "mutability": "constant",
            "name": "MAJOR_TYPE_ARRAY",
            "nameLocation": "1151:16:66",
            "nodeType": "VariableDeclaration",
            "scope": 20734,
            "src": "1127:44:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 19231,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1127:5:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "34",
              "id": 19232,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1170:1:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4_by_1",
                "typeString": "int_const 4"
              },
              "value": "4"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 19236,
            "mutability": "constant",
            "name": "MAJOR_TYPE_MAP",
            "nameLocation": "1200:14:66",
            "nodeType": "VariableDeclaration",
            "scope": 20734,
            "src": "1176:42:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 19234,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1176:5:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "35",
              "id": 19235,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1217:1:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_5_by_1",
                "typeString": "int_const 5"
              },
              "value": "5"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 19239,
            "mutability": "constant",
            "name": "MAJOR_TYPE_TAG",
            "nameLocation": "1247:14:66",
            "nodeType": "VariableDeclaration",
            "scope": 20734,
            "src": "1223:42:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 19237,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1223:5:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "36",
              "id": 19238,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1264:1:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_6_by_1",
                "typeString": "int_const 6"
              },
              "value": "6"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 19242,
            "mutability": "constant",
            "name": "MAJOR_TYPE_CONTENT_FREE",
            "nameLocation": "1294:23:66",
            "nodeType": "VariableDeclaration",
            "scope": 20734,
            "src": "1270:51:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 19240,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1270:5:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "37",
              "id": 19241,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1320:1:66",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_7_by_1",
                "typeString": "int_const 7"
              },
              "value": "7"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 19249,
            "mutability": "constant",
            "name": "UINT32_MAX",
            "nameLocation": "1353:10:66",
            "nodeType": "VariableDeclaration",
            "scope": 20734,
            "src": "1328:54:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 19243,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "1328:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "expression": {
                "arguments": [
                  {
                    "id": 19246,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "1371:6:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": {
                      "id": 19245,
                      "name": "uint32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1371:6:66",
                      "typeDescriptions": {}
                    }
                  }
                ],
                "expression": {
                  "argumentTypes": [
                    {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    }
                  ],
                  "id": 19244,
                  "name": "type",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4294967269,
                  "src": "1366:4:66",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                    "typeString": "function () pure"
                  }
                },
                "id": 19247,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "functionCall",
                "lValueRequested": false,
                "nameLocations": [],
                "names": [],
                "nodeType": "FunctionCall",
                "src": "1366:12:66",
                "tryCall": false,
                "typeDescriptions": {
                  "typeIdentifier": "t_magic_meta_type_t_uint32",
                  "typeString": "type(uint32)"
                }
              },
              "id": 19248,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberLocation": "1379:3:66",
              "memberName": "max",
              "nodeType": "MemberAccess",
              "src": "1366:16:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 19256,
            "mutability": "constant",
            "name": "UINT64_MAX",
            "nameLocation": "1412:10:66",
            "nodeType": "VariableDeclaration",
            "scope": 20734,
            "src": "1387:54:66",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint64",
              "typeString": "uint64"
            },
            "typeName": {
              "id": 19250,
              "name": "uint64",
              "nodeType": "ElementaryTypeName",
              "src": "1387:6:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint64",
                "typeString": "uint64"
              }
            },
            "value": {
              "expression": {
                "arguments": [
                  {
                    "id": 19253,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "1430:6:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint64_$",
                      "typeString": "type(uint64)"
                    },
                    "typeName": {
                      "id": 19252,
                      "name": "uint64",
                      "nodeType": "ElementaryTypeName",
                      "src": "1430:6:66",
                      "typeDescriptions": {}
                    }
                  }
                ],
                "expression": {
                  "argumentTypes": [
                    {
                      "typeIdentifier": "t_type$_t_uint64_$",
                      "typeString": "type(uint64)"
                    }
                  ],
                  "id": 19251,
                  "name": "type",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4294967269,
                  "src": "1425:4:66",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                    "typeString": "function () pure"
                  }
                },
                "id": 19254,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "functionCall",
                "lValueRequested": false,
                "nameLocations": [],
                "names": [],
                "nodeType": "FunctionCall",
                "src": "1425:12:66",
                "tryCall": false,
                "typeDescriptions": {
                  "typeIdentifier": "t_magic_meta_type_t_uint64",
                  "typeString": "type(uint64)"
                }
              },
              "id": 19255,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberLocation": "1438:3:66",
              "memberName": "max",
              "nodeType": "MemberAccess",
              "src": "1425:16:66",
              "typeDescriptions": {
                "typeIdentifier": "t_uint64",
                "typeString": "uint64"
              }
            },
            "visibility": "internal"
          },
          {
            "errorSelector": "521299a9",
            "id": 19258,
            "name": "EmptyArray",
            "nameLocation": "1456:10:66",
            "nodeType": "ErrorDefinition",
            "parameters": {
              "id": 19257,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1466:2:66"
            },
            "src": "1450:19:66"
          },
          {
            "errorSelector": "6d785b13",
            "id": 19262,
            "name": "InvalidLengthEncoding",
            "nameLocation": "1479:21:66",
            "nodeType": "ErrorDefinition",
            "parameters": {
              "id": 19261,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19260,
                  "mutability": "mutable",
                  "name": "length",
                  "nameLocation": "1506:6:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19262,
                  "src": "1501:11:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19259,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1501:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1500:13:66"
            },
            "src": "1473:41:66"
          },
          {
            "errorSelector": "001000a0",
            "id": 19268,
            "name": "UnexpectedMajorType",
            "nameLocation": "1524:19:66",
            "nodeType": "ErrorDefinition",
            "parameters": {
              "id": 19267,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19264,
                  "mutability": "mutable",
                  "name": "read",
                  "nameLocation": "1549:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19268,
                  "src": "1544:9:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19263,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1544:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19266,
                  "mutability": "mutable",
                  "name": "expected",
                  "nameLocation": "1560:8:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19268,
                  "src": "1555:13:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19265,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1555:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1543:26:66"
            },
            "src": "1518:52:66"
          },
          {
            "errorSelector": "300c1304",
            "id": 19272,
            "name": "UnsupportedPrimitive",
            "nameLocation": "1580:20:66",
            "nodeType": "ErrorDefinition",
            "parameters": {
              "id": 19271,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19270,
                  "mutability": "mutable",
                  "name": "primitive",
                  "nameLocation": "1606:9:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19272,
                  "src": "1601:14:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19269,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1601:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1600:16:66"
            },
            "src": "1574:43:66"
          },
          {
            "errorSelector": "bd2ac879",
            "id": 19276,
            "name": "UnsupportedMajorType",
            "nameLocation": "1627:20:66",
            "nodeType": "ErrorDefinition",
            "parameters": {
              "id": 19275,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19274,
                  "mutability": "mutable",
                  "name": "unexpected",
                  "nameLocation": "1653:10:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19276,
                  "src": "1648:15:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 19273,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1648:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1647:17:66"
            },
            "src": "1621:44:66"
          },
          {
            "body": {
              "id": 19296,
              "nodeType": "Block",
              "src": "1758:121:66",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 19286,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 19283,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19279,
                        "src": "1769:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 19284,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1774:9:66",
                      "memberName": "majorType",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19211,
                      "src": "1769:14:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "id": 19285,
                      "name": "expected",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19281,
                      "src": "1787:8:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "1769:26:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 19294,
                  "nodeType": "IfStatement",
                  "src": "1765:101:66",
                  "trueBody": {
                    "id": 19293,
                    "nodeType": "Block",
                    "src": "1797:69:66",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 19288,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19279,
                                "src": "1833:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 19289,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1838:9:66",
                              "memberName": "majorType",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19211,
                              "src": "1833:14:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            {
                              "id": 19290,
                              "name": "expected",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19281,
                              "src": "1849:8:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "id": 19287,
                            "name": "UnexpectedMajorType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19268,
                            "src": "1813:19:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256) pure"
                            }
                          },
                          "id": 19291,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1813:45:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 19292,
                        "nodeType": "RevertStatement",
                        "src": "1806:52:66"
                      }
                    ]
                  }
                },
                {
                  "id": 19295,
                  "nodeType": "PlaceholderStatement",
                  "src": "1872:1:66"
                }
              ]
            },
            "id": 19297,
            "name": "isMajorType",
            "nameLocation": "1682:11:66",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 19282,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19279,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "1725:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19297,
                  "src": "1702:27:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 19278,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19277,
                      "name": "WitnetCBOR.CBOR",
                      "nameLocations": [
                        "1702:10:66",
                        "1713:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "1702:15:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "1702:15:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19281,
                  "mutability": "mutable",
                  "name": "expected",
                  "nameLocation": "1744:8:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19297,
                  "src": "1738:14:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 19280,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1738:5:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1693:64:66"
            },
            "src": "1673:206:66",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 19315,
              "nodeType": "Block",
              "src": "1938:99:66",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 19306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "expression": {
                          "id": 19302,
                          "name": "buffer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19300,
                          "src": "1949:6:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          }
                        },
                        "id": 19303,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1956:4:66",
                        "memberName": "data",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 17577,
                        "src": "1949:11:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 19304,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1961:6:66",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "1949:18:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 19305,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1971:1:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1949:23:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 19313,
                  "nodeType": "IfStatement",
                  "src": "1945:79:66",
                  "trueBody": {
                    "id": 19312,
                    "nodeType": "Block",
                    "src": "1974:50:66",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 19307,
                              "name": "WitnetBuffer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19191,
                              "src": "1990:12:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_WitnetBuffer_$19191_$",
                                "typeString": "type(library WitnetBuffer)"
                              }
                            },
                            "id": 19309,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2003:11:66",
                            "memberName": "EmptyBuffer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 17562,
                            "src": "1990:24:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 19310,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1990:26:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 19311,
                        "nodeType": "RevertStatement",
                        "src": "1983:33:66"
                      }
                    ]
                  }
                },
                {
                  "id": 19314,
                  "nodeType": "PlaceholderStatement",
                  "src": "2030:1:66"
                }
              ]
            },
            "id": 19316,
            "name": "notEmpty",
            "nameLocation": "1894:8:66",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 19301,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19300,
                  "mutability": "mutable",
                  "name": "buffer",
                  "nameLocation": "1930:6:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19316,
                  "src": "1903:33:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                    "typeString": "struct WitnetBuffer.Buffer"
                  },
                  "typeName": {
                    "id": 19299,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19298,
                      "name": "WitnetBuffer.Buffer",
                      "nameLocations": [
                        "1903:12:66",
                        "1916:6:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 17580,
                      "src": "1903:19:66"
                    },
                    "referencedDeclaration": 17580,
                    "src": "1903:19:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Buffer_$17580_storage_ptr",
                      "typeString": "struct WitnetBuffer.Buffer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1902:35:66"
            },
            "src": "1885:152:66",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 19333,
              "nodeType": "Block",
              "src": "2116:65:66",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 19331,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "expression": {
                          "id": 19324,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19319,
                          "src": "2130:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 19325,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2135:6:66",
                        "memberName": "buffer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19207,
                        "src": "2130:11:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      "id": 19326,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2142:6:66",
                      "memberName": "cursor",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 17579,
                      "src": "2130:18:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "expression": {
                        "expression": {
                          "expression": {
                            "id": 19327,
                            "name": "cbor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19319,
                            "src": "2152:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 19328,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2157:6:66",
                          "memberName": "buffer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19207,
                          "src": "2152:11:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          }
                        },
                        "id": 19329,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2164:4:66",
                        "memberName": "data",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 17577,
                        "src": "2152:16:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 19330,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2169:6:66",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "2152:23:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2130:45:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 19323,
                  "id": 19332,
                  "nodeType": "Return",
                  "src": "2123:52:66"
                }
              ]
            },
            "id": 19334,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "eof",
            "nameLocation": "2052:3:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19320,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19319,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "2068:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19334,
                  "src": "2056:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 19318,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19317,
                      "name": "CBOR",
                      "nameLocations": [
                        "2056:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "2056:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "2056:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2055:18:66"
            },
            "returnParameters": {
              "id": 19323,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19322,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 19334,
                  "src": "2107:4:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 19321,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2107:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2106:6:66"
            },
            "scope": 20734,
            "src": "2043:138:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 19358,
              "nodeType": "Block",
              "src": "2579:113:66",
              "statements": [
                {
                  "assignments": [
                    19347
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 19347,
                      "mutability": "mutable",
                      "name": "buffer",
                      "nameLocation": "2613:6:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 19358,
                      "src": "2586:33:66",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                        "typeString": "struct WitnetBuffer.Buffer"
                      },
                      "typeName": {
                        "id": 19346,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 19345,
                          "name": "WitnetBuffer.Buffer",
                          "nameLocations": [
                            "2586:12:66",
                            "2599:6:66"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 17580,
                          "src": "2586:19:66"
                        },
                        "referencedDeclaration": 17580,
                        "src": "2586:19:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$17580_storage_ptr",
                          "typeString": "struct WitnetBuffer.Buffer"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 19353,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 19350,
                        "name": "bytecode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19337,
                        "src": "2642:8:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 19351,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2652:1:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "expression": {
                        "id": 19348,
                        "name": "WitnetBuffer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19191,
                        "src": "2622:12:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetBuffer_$19191_$",
                          "typeString": "type(library WitnetBuffer)"
                        }
                      },
                      "id": 19349,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2635:6:66",
                      "memberName": "Buffer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 17580,
                      "src": "2622:19:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_Buffer_$17580_storage_ptr_$",
                        "typeString": "type(struct WitnetBuffer.Buffer storage pointer)"
                      }
                    },
                    "id": 19352,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2622:32:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                      "typeString": "struct WitnetBuffer.Buffer memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2586:68:66"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 19355,
                        "name": "buffer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19347,
                        "src": "2679:6:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      ],
                      "id": 19354,
                      "name": "fromBuffer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19468,
                      "src": "2668:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (struct WitnetCBOR.CBOR memory)"
                      }
                    },
                    "id": 19356,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2668:18:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  "functionReturnParameters": 19342,
                  "id": 19357,
                  "nodeType": "Return",
                  "src": "2661:25:66"
                }
              ]
            },
            "documentation": {
              "id": 19335,
              "nodeType": "StructuredDocumentation",
              "src": "2187:297:66",
              "text": "@notice Decode a CBOR structure from raw bytes.\n @dev This is the main factory for CBOR instances, which can be later decoded into native EVM types.\n @param bytecode Raw bytes representing a CBOR-encoded value.\n @return A `CBOR` instance containing a partially decoded value."
            },
            "id": 19359,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "fromBytes",
            "nameLocation": "2497:9:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19338,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19337,
                  "mutability": "mutable",
                  "name": "bytecode",
                  "nameLocation": "2520:8:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19359,
                  "src": "2507:21:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 19336,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2507:5:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2506:23:66"
            },
            "returnParameters": {
              "id": 19342,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19341,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 19359,
                  "src": "2563:11:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 19340,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19339,
                      "name": "CBOR",
                      "nameLocations": [
                        "2563:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "2563:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "2563:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2562:13:66"
            },
            "scope": 20734,
            "src": "2488:204:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 19467,
              "nodeType": "Block",
              "src": "3136:907:66",
              "statements": [
                {
                  "assignments": [
                    19373
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 19373,
                      "mutability": "mutable",
                      "name": "initialByte",
                      "nameLocation": "3149:11:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 19467,
                      "src": "3143:17:66",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 19372,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "3143:5:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 19374,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3143:17:66"
                },
                {
                  "assignments": [
                    19376
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 19376,
                      "mutability": "mutable",
                      "name": "majorType",
                      "nameLocation": "3173:9:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 19467,
                      "src": "3167:15:66",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 19375,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "3167:5:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 19378,
                  "initialValue": {
                    "hexValue": "323535",
                    "id": 19377,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3185:3:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_255_by_1",
                      "typeString": "int_const 255"
                    },
                    "value": "255"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3167:21:66"
                },
                {
                  "assignments": [
                    19380
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 19380,
                      "mutability": "mutable",
                      "name": "additionalInformation",
                      "nameLocation": "3201:21:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 19467,
                      "src": "3195:27:66",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 19379,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "3195:5:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 19381,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3195:27:66"
                },
                {
                  "assignments": [
                    19383
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 19383,
                      "mutability": "mutable",
                      "name": "tag",
                      "nameLocation": "3236:3:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 19467,
                      "src": "3229:10:66",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 19382,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "3229:6:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 19385,
                  "initialValue": {
                    "id": 19384,
                    "name": "UINT64_MAX",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19256,
                    "src": "3242:10:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3229:23:66"
                },
                {
                  "assignments": [
                    19387
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 19387,
                      "mutability": "mutable",
                      "name": "len",
                      "nameLocation": "3267:3:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 19467,
                      "src": "3259:11:66",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 19386,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3259:7:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 19388,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3259:11:66"
                },
                {
                  "assignments": [
                    19390
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 19390,
                      "mutability": "mutable",
                      "name": "isTagged",
                      "nameLocation": "3282:8:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 19467,
                      "src": "3277:13:66",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 19389,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "3277:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 19392,
                  "initialValue": {
                    "hexValue": "74727565",
                    "id": 19391,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3293:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3277:20:66"
                },
                {
                  "body": {
                    "id": 19444,
                    "nodeType": "Block",
                    "src": "3321:475:66",
                    "statements": [
                      {
                        "expression": {
                          "id": 19398,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 19394,
                            "name": "initialByte",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19373,
                            "src": "3387:11:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "id": 19395,
                                "name": "buffer",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19363,
                                "src": "3401:6:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                  "typeString": "struct WitnetBuffer.Buffer memory"
                                }
                              },
                              "id": 19396,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "3408:9:66",
                              "memberName": "readUint8",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 18517,
                              "src": "3401:16:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_uint8_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                                "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (uint8)"
                              }
                            },
                            "id": 19397,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3401:18:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "3387:32:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "id": 19399,
                        "nodeType": "ExpressionStatement",
                        "src": "3387:32:66"
                      },
                      {
                        "expression": {
                          "id": 19401,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "3428:6:66",
                          "subExpression": {
                            "id": 19400,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19387,
                            "src": "3428:3:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 19402,
                        "nodeType": "ExpressionStatement",
                        "src": "3428:6:66"
                      },
                      {
                        "expression": {
                          "id": 19407,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 19403,
                            "name": "majorType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19376,
                            "src": "3443:9:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 19406,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 19404,
                              "name": "initialByte",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19373,
                              "src": "3455:11:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "35",
                              "id": 19405,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3470:1:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            },
                            "src": "3455:16:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "3443:28:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "id": 19408,
                        "nodeType": "ExpressionStatement",
                        "src": "3443:28:66"
                      },
                      {
                        "expression": {
                          "id": 19413,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 19409,
                            "name": "additionalInformation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19380,
                            "src": "3480:21:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 19412,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 19410,
                              "name": "initialByte",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19373,
                              "src": "3504:11:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "hexValue": "30783166",
                              "id": 19411,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3518:4:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_31_by_1",
                                "typeString": "int_const 31"
                              },
                              "value": "0x1f"
                            },
                            "src": "3504:18:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "3480:42:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "id": 19414,
                        "nodeType": "ExpressionStatement",
                        "src": "3480:42:66"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 19417,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 19415,
                            "name": "majorType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19376,
                            "src": "3569:9:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 19416,
                            "name": "MAJOR_TYPE_TAG",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19239,
                            "src": "3582:14:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "3569:27:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 19442,
                          "nodeType": "Block",
                          "src": "3752:37:66",
                          "statements": [
                            {
                              "expression": {
                                "id": 19440,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 19438,
                                  "name": "isTagged",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19390,
                                  "src": "3763:8:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "hexValue": "66616c7365",
                                  "id": 19439,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "bool",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "3774:5:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "value": "false"
                                },
                                "src": "3763:16:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 19441,
                              "nodeType": "ExpressionStatement",
                              "src": "3763:16:66"
                            }
                          ]
                        },
                        "id": 19443,
                        "nodeType": "IfStatement",
                        "src": "3565:224:66",
                        "trueBody": {
                          "id": 19437,
                          "nodeType": "Block",
                          "src": "3598:148:66",
                          "statements": [
                            {
                              "assignments": [
                                19419
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 19419,
                                  "mutability": "mutable",
                                  "name": "_cursor",
                                  "nameLocation": "3614:7:66",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 19437,
                                  "src": "3609:12:66",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 19418,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3609:4:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 19422,
                              "initialValue": {
                                "expression": {
                                  "id": 19420,
                                  "name": "buffer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19363,
                                  "src": "3624:6:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                    "typeString": "struct WitnetBuffer.Buffer memory"
                                  }
                                },
                                "id": 19421,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "3631:6:66",
                                "memberName": "cursor",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 17579,
                                "src": "3624:13:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "3609:28:66"
                            },
                            {
                              "expression": {
                                "id": 19428,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 19423,
                                  "name": "tag",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19383,
                                  "src": "3648:3:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "id": 19425,
                                      "name": "buffer",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 19363,
                                      "src": "3665:6:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                        "typeString": "struct WitnetBuffer.Buffer memory"
                                      }
                                    },
                                    {
                                      "id": 19426,
                                      "name": "additionalInformation",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 19380,
                                      "src": "3673:21:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                        "typeString": "struct WitnetBuffer.Buffer memory"
                                      },
                                      {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    ],
                                    "id": 19424,
                                    "name": "readLength",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 19997,
                                    "src": "3654:10:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                                      "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                                    }
                                  },
                                  "id": 19427,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3654:41:66",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "src": "3648:47:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "id": 19429,
                              "nodeType": "ExpressionStatement",
                              "src": "3648:47:66"
                            },
                            {
                              "expression": {
                                "id": 19435,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 19430,
                                  "name": "len",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19387,
                                  "src": "3706:3:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 19434,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "expression": {
                                      "id": 19431,
                                      "name": "buffer",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 19363,
                                      "src": "3713:6:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                        "typeString": "struct WitnetBuffer.Buffer memory"
                                      }
                                    },
                                    "id": 19432,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "3720:6:66",
                                    "memberName": "cursor",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 17579,
                                    "src": "3713:13:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "-",
                                  "rightExpression": {
                                    "id": 19433,
                                    "name": "_cursor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 19419,
                                    "src": "3729:7:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "3713:23:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "3706:30:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 19436,
                              "nodeType": "ExpressionStatement",
                              "src": "3706:30:66"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "id": 19393,
                    "name": "isTagged",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19390,
                    "src": "3311:8:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 19445,
                  "nodeType": "WhileStatement",
                  "src": "3304:492:66"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 19448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 19446,
                      "name": "majorType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19376,
                      "src": "3806:9:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "id": 19447,
                      "name": "MAJOR_TYPE_CONTENT_FREE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19242,
                      "src": "3818:23:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "3806:35:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 19454,
                  "nodeType": "IfStatement",
                  "src": "3802:96:66",
                  "trueBody": {
                    "id": 19453,
                    "nodeType": "Block",
                    "src": "3843:55:66",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "id": 19450,
                              "name": "majorType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19376,
                              "src": "3880:9:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "id": 19449,
                            "name": "UnsupportedMajorType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19276,
                            "src": "3859:20:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) pure"
                            }
                          },
                          "id": 19451,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3859:31:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 19452,
                        "nodeType": "RevertStatement",
                        "src": "3852:38:66"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 19456,
                        "name": "buffer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19363,
                        "src": "3924:6:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "id": 19457,
                        "name": "initialByte",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19373,
                        "src": "3939:11:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "id": 19458,
                        "name": "majorType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19376,
                        "src": "3959:9:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "id": 19459,
                        "name": "additionalInformation",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19380,
                        "src": "3977:21:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 19462,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19387,
                            "src": "4014:3:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 19461,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4007:6:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": {
                            "id": 19460,
                            "name": "uint64",
                            "nodeType": "ElementaryTypeName",
                            "src": "4007:6:66",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 19463,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4007:11:66",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "id": 19464,
                        "name": "tag",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19383,
                        "src": "4027:3:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 19455,
                      "name": "CBOR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19218,
                      "src": "3911:4:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_CBOR_$19218_storage_ptr_$",
                        "typeString": "type(struct WitnetCBOR.CBOR storage pointer)"
                      }
                    },
                    "id": 19465,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3911:126:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  "functionReturnParameters": 19371,
                  "id": 19466,
                  "nodeType": "Return",
                  "src": "3904:133:66"
                }
              ]
            },
            "documentation": {
              "id": 19360,
              "nodeType": "StructuredDocumentation",
              "src": "2698:308:66",
              "text": "@notice Decode a CBOR structure from raw bytes.\n @dev This is an alternate factory for CBOR instances, which can be later decoded into native EVM types.\n @param buffer A Buffer structure representing a CBOR-encoded value.\n @return A `CBOR` instance containing a partially decoded value."
            },
            "id": 19468,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 19366,
                    "name": "buffer",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19363,
                    "src": "3098:6:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                      "typeString": "struct WitnetBuffer.Buffer memory"
                    }
                  }
                ],
                "id": 19367,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 19365,
                  "name": "notEmpty",
                  "nameLocations": [
                    "3089:8:66"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19316,
                  "src": "3089:8:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "3089:16:66"
              }
            ],
            "name": "fromBuffer",
            "nameLocation": "3019:10:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19364,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19363,
                  "mutability": "mutable",
                  "name": "buffer",
                  "nameLocation": "3057:6:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19468,
                  "src": "3030:33:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                    "typeString": "struct WitnetBuffer.Buffer"
                  },
                  "typeName": {
                    "id": 19362,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19361,
                      "name": "WitnetBuffer.Buffer",
                      "nameLocations": [
                        "3030:12:66",
                        "3043:6:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 17580,
                      "src": "3030:19:66"
                    },
                    "referencedDeclaration": 17580,
                    "src": "3030:19:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Buffer_$17580_storage_ptr",
                      "typeString": "struct WitnetBuffer.Buffer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3029:35:66"
            },
            "returnParameters": {
              "id": 19371,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19370,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 19468,
                  "src": "3120:11:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 19369,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19368,
                      "name": "CBOR",
                      "nameLocations": [
                        "3120:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "3120:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "3120:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3119:13:66"
            },
            "scope": 20734,
            "src": "3010:1033:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 19494,
              "nodeType": "Block",
              "src": "4152:242:66",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "expression": {
                              "id": 19478,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19471,
                              "src": "4188:4:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory"
                              }
                            },
                            "id": 19479,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4193:6:66",
                            "memberName": "buffer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 19207,
                            "src": "4188:11:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                              "typeString": "struct WitnetBuffer.Buffer memory"
                            }
                          },
                          "id": 19480,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4200:4:66",
                          "memberName": "fork",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 17664,
                          "src": "4188:16:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_struct$_Buffer_$17580_memory_ptr_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                            "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (struct WitnetBuffer.Buffer memory)"
                          }
                        },
                        "id": 19481,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4188:18:66",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 19482,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19471,
                          "src": "4228:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 19483,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4233:11:66",
                        "memberName": "initialByte",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19209,
                        "src": "4228:16:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "expression": {
                          "id": 19484,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19471,
                          "src": "4264:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 19485,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4269:9:66",
                        "memberName": "majorType",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19211,
                        "src": "4264:14:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "expression": {
                          "id": 19486,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19471,
                          "src": "4310:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 19487,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4315:21:66",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19213,
                        "src": "4310:26:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "expression": {
                          "id": 19488,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19471,
                          "src": "4350:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 19489,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4355:3:66",
                        "memberName": "len",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19215,
                        "src": "4350:8:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "expression": {
                          "id": 19490,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19471,
                          "src": "4372:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 19491,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4377:3:66",
                        "memberName": "tag",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19217,
                        "src": "4372:8:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 19477,
                      "name": "CBOR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19218,
                      "src": "4166:4:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_CBOR_$19218_storage_ptr_$",
                        "typeString": "type(struct WitnetCBOR.CBOR storage pointer)"
                      }
                    },
                    "id": 19492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "4180:6:66",
                      "4215:11:66",
                      "4253:9:66",
                      "4287:21:66",
                      "4345:3:66",
                      "4367:3:66"
                    ],
                    "names": [
                      "buffer",
                      "initialByte",
                      "majorType",
                      "additionalInformation",
                      "len",
                      "tag"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "4166:222:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  "functionReturnParameters": 19476,
                  "id": 19493,
                  "nodeType": "Return",
                  "src": "4159:229:66"
                }
              ]
            },
            "id": 19495,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "fork",
            "nameLocation": "4058:4:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19472,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19471,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "4086:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19495,
                  "src": "4063:27:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 19470,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19469,
                      "name": "WitnetCBOR.CBOR",
                      "nameLocations": [
                        "4063:10:66",
                        "4074:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "4063:15:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "4063:15:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4062:29:66"
            },
            "returnParameters": {
              "id": 19476,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19475,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 19495,
                  "src": "4125:22:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 19474,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19473,
                      "name": "WitnetCBOR.CBOR",
                      "nameLocations": [
                        "4125:10:66",
                        "4136:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "4125:15:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "4125:15:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4124:24:66"
            },
            "scope": 20734,
            "src": "4049:345:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 19518,
              "nodeType": "Block",
              "src": "4498:110:66",
              "statements": [
                {
                  "condition": {
                    "id": 19507,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "4509:11:66",
                    "subExpression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 19504,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19498,
                          "src": "4510:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 19505,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4515:3:66",
                        "memberName": "eof",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19334,
                        "src": "4510:8:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                          "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (bool)"
                        }
                      },
                      "id": 19506,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4510:10:66",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 19516,
                    "nodeType": "Block",
                    "src": "4575:28:66",
                    "statements": [
                      {
                        "expression": {
                          "id": 19514,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19498,
                          "src": "4591:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "functionReturnParameters": 19503,
                        "id": 19515,
                        "nodeType": "Return",
                        "src": "4584:11:66"
                      }
                    ]
                  },
                  "id": 19517,
                  "nodeType": "IfStatement",
                  "src": "4505:98:66",
                  "trueBody": {
                    "id": 19513,
                    "nodeType": "Block",
                    "src": "4522:47:66",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 19509,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19498,
                                "src": "4549:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 19510,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "4554:6:66",
                              "memberName": "buffer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19207,
                              "src": "4549:11:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            ],
                            "id": 19508,
                            "name": "fromBuffer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19468,
                            "src": "4538:10:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (struct WitnetCBOR.CBOR memory)"
                            }
                          },
                          "id": 19511,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4538:23:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "functionReturnParameters": 19503,
                        "id": 19512,
                        "nodeType": "Return",
                        "src": "4531:30:66"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 19519,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "settle",
            "nameLocation": "4409:6:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19499,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19498,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "4428:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19519,
                  "src": "4416:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 19497,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19496,
                      "name": "CBOR",
                      "nameLocations": [
                        "4416:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "4416:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "4416:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4415:18:66"
            },
            "returnParameters": {
              "id": 19503,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19502,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 19519,
                  "src": "4471:22:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 19501,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19500,
                      "name": "WitnetCBOR.CBOR",
                      "nameLocations": [
                        "4471:10:66",
                        "4482:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "4471:15:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "4471:15:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4470:24:66"
            },
            "scope": 20734,
            "src": "4400:208:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 19638,
              "nodeType": "Block",
              "src": "4710:1039:66",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 19552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 19536,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "id": 19531,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 19528,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19522,
                            "src": "4729:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 19529,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4734:9:66",
                          "memberName": "majorType",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19211,
                          "src": "4729:14:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 19530,
                          "name": "MAJOR_TYPE_INT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19221,
                          "src": "4747:14:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "src": "4729:32:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "id": 19535,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 19532,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19522,
                            "src": "4774:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 19533,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4779:9:66",
                          "memberName": "majorType",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19211,
                          "src": "4774:14:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 19534,
                          "name": "MAJOR_TYPE_NEGATIVE_INT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19224,
                          "src": "4792:23:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "src": "4774:41:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "4729:86:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 19550,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 19545,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 19540,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 19537,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19522,
                                  "src": "4841:4:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 19538,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "4846:9:66",
                                "memberName": "majorType",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 19211,
                                "src": "4841:14:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "id": 19539,
                                "name": "MAJOR_TYPE_CONTENT_FREE",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19242,
                                "src": "4859:23:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "src": "4841:41:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&&",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 19544,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 19541,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19522,
                                  "src": "4900:4:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 19542,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "4905:21:66",
                                "memberName": "additionalInformation",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 19213,
                                "src": "4900:26:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "hexValue": "3235",
                                "id": 19543,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4930:2:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                },
                                "value": "25"
                              },
                              "src": "4900:32:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "4841:91:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 19549,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 19546,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19522,
                                "src": "4949:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 19547,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "4954:21:66",
                              "memberName": "additionalInformation",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19213,
                              "src": "4949:26:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "hexValue": "3237",
                              "id": 19548,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4979:2:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_27_by_1",
                                "typeString": "int_const 27"
                              },
                              "value": "27"
                            },
                            "src": "4949:32:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "4841:140:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 19551,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "4828:164:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4729:263:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 19572,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "id": 19567,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 19564,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19522,
                            "src": "5076:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 19565,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "5081:9:66",
                          "memberName": "majorType",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19211,
                          "src": "5076:14:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 19566,
                          "name": "MAJOR_TYPE_STRING",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19230,
                          "src": "5094:17:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "src": "5076:35:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "id": 19571,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 19568,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19522,
                            "src": "5126:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 19569,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "5131:9:66",
                          "memberName": "majorType",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19211,
                          "src": "5126:14:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 19570,
                          "name": "MAJOR_TYPE_BYTES",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19227,
                          "src": "5144:16:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "src": "5126:34:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "5076:84:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 19599,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 19594,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 19591,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19522,
                              "src": "5301:4:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory"
                              }
                            },
                            "id": 19592,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5306:9:66",
                            "memberName": "majorType",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 19211,
                            "src": "5301:14:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 19593,
                            "name": "MAJOR_TYPE_ARRAY",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19233,
                            "src": "5319:16:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "5301:34:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 19598,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 19595,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19522,
                              "src": "5348:4:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory"
                              }
                            },
                            "id": 19596,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5353:9:66",
                            "memberName": "majorType",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 19211,
                            "src": "5348:14:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 19597,
                            "name": "MAJOR_TYPE_MAP",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19236,
                            "src": "5366:14:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "5348:32:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5301:79:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 19626,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 19615,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 19612,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19522,
                                "src": "5493:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 19613,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5498:9:66",
                              "memberName": "majorType",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19211,
                              "src": "5493:14:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "id": 19614,
                              "name": "MAJOR_TYPE_CONTENT_FREE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19242,
                              "src": "5511:23:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "src": "5493:41:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "components": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "id": 19624,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 19619,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "expression": {
                                      "id": 19616,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 19522,
                                      "src": "5560:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 19617,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "5565:21:66",
                                    "memberName": "additionalInformation",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19213,
                                    "src": "5560:26:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "!=",
                                  "rightExpression": {
                                    "hexValue": "3230",
                                    "id": 19618,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5590:2:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_20_by_1",
                                      "typeString": "int_const 20"
                                    },
                                    "value": "20"
                                  },
                                  "src": "5560:32:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "&&",
                                "rightExpression": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 19623,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "expression": {
                                      "id": 19620,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 19522,
                                      "src": "5609:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 19621,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "5614:21:66",
                                    "memberName": "additionalInformation",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19213,
                                    "src": "5609:26:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "!=",
                                  "rightExpression": {
                                    "hexValue": "3231",
                                    "id": 19622,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5639:2:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_21_by_1",
                                      "typeString": "int_const 21"
                                    },
                                    "value": "21"
                                  },
                                  "src": "5609:32:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "src": "5560:81:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 19625,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "5547:105:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "5493:159:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 19632,
                        "nodeType": "IfStatement",
                        "src": "5480:246:66",
                        "trueBody": {
                          "id": 19631,
                          "nodeType": "Block",
                          "src": "5660:66:66",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "hexValue": "5769746e657443424f522e736b69703a20756e737570706f72746564206d616a6f722074797065",
                                    "id": 19628,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5676:41:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_92a4e60c9c8a6bab113d51719bd32c972951c92a48fb0ef633db4f8d512f86fe",
                                      "typeString": "literal_string \"WitnetCBOR.skip: unsupported major type\""
                                    },
                                    "value": "WitnetCBOR.skip: unsupported major type"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_stringliteral_92a4e60c9c8a6bab113d51719bd32c972951c92a48fb0ef633db4f8d512f86fe",
                                      "typeString": "literal_string \"WitnetCBOR.skip: unsupported major type\""
                                    }
                                  ],
                                  "id": 19627,
                                  "name": "revert",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    4294967277,
                                    4294967277
                                  ],
                                  "referencedDeclaration": 4294967277,
                                  "src": "5669:6:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                    "typeString": "function (string memory) pure"
                                  }
                                },
                                "id": 19629,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5669:49:66",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 19630,
                              "nodeType": "ExpressionStatement",
                              "src": "5669:49:66"
                            }
                          ]
                        }
                      },
                      "id": 19633,
                      "nodeType": "IfStatement",
                      "src": "5289:437:66",
                      "trueBody": {
                        "id": 19611,
                        "nodeType": "Block",
                        "src": "5388:86:66",
                        "statements": [
                          {
                            "expression": {
                              "id": 19609,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "expression": {
                                  "id": 19600,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19522,
                                  "src": "5398:4:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 19602,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "memberLocation": "5403:3:66",
                                "memberName": "len",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 19215,
                                "src": "5398:8:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 19604,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 19522,
                                      "src": "5420:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 19605,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "5425:6:66",
                                    "memberName": "buffer",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19207,
                                    "src": "5420:11:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 19606,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 19522,
                                      "src": "5433:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 19607,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "5438:21:66",
                                    "memberName": "additionalInformation",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19213,
                                    "src": "5433:26:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    },
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 19603,
                                  "name": "readLength",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19997,
                                  "src": "5409:10:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                                    "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                                  }
                                },
                                "id": 19608,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5409:51:66",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "src": "5398:62:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            "id": 19610,
                            "nodeType": "ExpressionStatement",
                            "src": "5398:62:66"
                          }
                        ]
                      }
                    },
                    "id": 19634,
                    "nodeType": "IfStatement",
                    "src": "5062:664:66",
                    "trueBody": {
                      "id": 19590,
                      "nodeType": "Block",
                      "src": "5168:115:66",
                      "statements": [
                        {
                          "assignments": [
                            19574
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 19574,
                              "mutability": "mutable",
                              "name": "len",
                              "nameLocation": "5184:3:66",
                              "nodeType": "VariableDeclaration",
                              "scope": 19590,
                              "src": "5177:10:66",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              },
                              "typeName": {
                                "id": 19573,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "5177:6:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 19581,
                          "initialValue": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 19576,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19522,
                                  "src": "5201:4:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 19577,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "5206:6:66",
                                "memberName": "buffer",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 19207,
                                "src": "5201:11:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                  "typeString": "struct WitnetBuffer.Buffer memory"
                                }
                              },
                              {
                                "expression": {
                                  "id": 19578,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19522,
                                  "src": "5214:4:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 19579,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "5219:21:66",
                                "memberName": "additionalInformation",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 19213,
                                "src": "5214:26:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                  "typeString": "struct WitnetBuffer.Buffer memory"
                                },
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 19575,
                              "name": "readLength",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19997,
                              "src": "5190:10:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                                "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                              }
                            },
                            "id": 19580,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5190:51:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "5177:64:66"
                        },
                        {
                          "expression": {
                            "id": 19588,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "expression": {
                                "expression": {
                                  "id": 19582,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19522,
                                  "src": "5250:4:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 19585,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "5255:6:66",
                                "memberName": "buffer",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 19207,
                                "src": "5250:11:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                  "typeString": "struct WitnetBuffer.Buffer memory"
                                }
                              },
                              "id": 19586,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberLocation": "5262:6:66",
                              "memberName": "cursor",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 17579,
                              "src": "5250:18:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "+=",
                            "rightHandSide": {
                              "id": 19587,
                              "name": "len",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19574,
                              "src": "5272:3:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            "src": "5250:25:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 19589,
                          "nodeType": "ExpressionStatement",
                          "src": "5250:25:66"
                        }
                      ]
                    }
                  },
                  "id": 19635,
                  "nodeType": "IfStatement",
                  "src": "4717:1009:66",
                  "trueBody": {
                    "id": 19563,
                    "nodeType": "Block",
                    "src": "5000:56:66",
                    "statements": [
                      {
                        "expression": {
                          "id": 19561,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "expression": {
                                "id": 19553,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19522,
                                "src": "5009:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 19556,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5014:6:66",
                              "memberName": "buffer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19207,
                              "src": "5009:11:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 19557,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "5021:6:66",
                            "memberName": "cursor",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 17579,
                            "src": "5009:18:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "id": 19558,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19522,
                                "src": "5031:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 19559,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5036:10:66",
                              "memberName": "peekLength",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19679,
                              "src": "5031:15:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                                "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (uint64)"
                              }
                            },
                            "id": 19560,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5031:17:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "5009:39:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 19562,
                        "nodeType": "ExpressionStatement",
                        "src": "5009:39:66"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 19636,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19522,
                    "src": "5739:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  "functionReturnParameters": 19527,
                  "id": 19637,
                  "nodeType": "Return",
                  "src": "5732:11:66"
                }
              ]
            },
            "id": 19639,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "skip",
            "nameLocation": "4623:4:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19523,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19522,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "4640:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19639,
                  "src": "4628:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 19521,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19520,
                      "name": "CBOR",
                      "nameLocations": [
                        "4628:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "4628:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "4628:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4627:18:66"
            },
            "returnParameters": {
              "id": 19527,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19526,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 19639,
                  "src": "4683:22:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 19525,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19524,
                      "name": "WitnetCBOR.CBOR",
                      "nameLocations": [
                        "4683:10:66",
                        "4694:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "4683:15:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "4683:15:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4682:24:66"
            },
            "scope": 20734,
            "src": "4614:1135:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 19678,
              "nodeType": "Block",
              "src": "5837:266:66",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 19650,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 19647,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19642,
                        "src": "5848:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 19648,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5853:21:66",
                      "memberName": "additionalInformation",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19213,
                      "src": "5848:26:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "hexValue": "3234",
                      "id": 19649,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5877:2:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_24_by_1",
                        "typeString": "int_const 24"
                      },
                      "value": "24"
                    },
                    "src": "5848:31:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 19657,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 19654,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19642,
                          "src": "5916:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 19655,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5921:21:66",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19213,
                        "src": "5916:26:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "hexValue": "3238",
                        "id": 19656,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5945:2:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_28_by_1",
                          "typeString": "int_const 28"
                        },
                        "value": "28"
                      },
                      "src": "5916:31:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 19675,
                      "nodeType": "Block",
                      "src": "6025:73:66",
                      "statements": [
                        {
                          "errorCall": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 19671,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19642,
                                  "src": "6063:4:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 19672,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "6068:21:66",
                                "memberName": "additionalInformation",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 19213,
                                "src": "6063:26:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 19670,
                              "name": "InvalidLengthEncoding",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19262,
                              "src": "6041:21:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
                                "typeString": "function (uint256) pure"
                              }
                            },
                            "id": 19673,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6041:49:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 19674,
                          "nodeType": "RevertStatement",
                          "src": "6034:56:66"
                        }
                      ]
                    },
                    "id": 19676,
                    "nodeType": "IfStatement",
                    "src": "5912:186:66",
                    "trueBody": {
                      "id": 19669,
                      "nodeType": "Block",
                      "src": "5949:70:66",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 19666,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "hexValue": "31",
                                  "id": 19660,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5972:1:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<<",
                                "rightExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "id": 19664,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 19661,
                                          "name": "self",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 19642,
                                          "src": "5978:4:66",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                            "typeString": "struct WitnetCBOR.CBOR memory"
                                          }
                                        },
                                        "id": 19662,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "5983:21:66",
                                        "memberName": "additionalInformation",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 19213,
                                        "src": "5978:26:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "hexValue": "3234",
                                        "id": 19663,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6007:2:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_24_by_1",
                                          "typeString": "int_const 24"
                                        },
                                        "value": "24"
                                      },
                                      "src": "5978:31:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "id": 19665,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "5977:33:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "src": "5972:38:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 19659,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5965:6:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint64_$",
                                "typeString": "type(uint64)"
                              },
                              "typeName": {
                                "id": 19658,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "5965:6:66",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 19667,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5965:46:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "functionReturnParameters": 19646,
                          "id": 19668,
                          "nodeType": "Return",
                          "src": "5958:53:66"
                        }
                      ]
                    }
                  },
                  "id": 19677,
                  "nodeType": "IfStatement",
                  "src": "5844:254:66",
                  "trueBody": {
                    "id": 19653,
                    "nodeType": "Block",
                    "src": "5881:25:66",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "30",
                          "id": 19651,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5897:1:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "functionReturnParameters": 19646,
                        "id": 19652,
                        "nodeType": "Return",
                        "src": "5890:8:66"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 19679,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "peekLength",
            "nameLocation": "5764:10:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19643,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19642,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "5787:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19679,
                  "src": "5775:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 19641,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19640,
                      "name": "CBOR",
                      "nameLocations": [
                        "5775:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "5775:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "5775:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5774:18:66"
            },
            "returnParameters": {
              "id": 19646,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19645,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 19679,
                  "src": "5826:6:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 19644,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "5826:6:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5825:8:66"
            },
            "scope": 20734,
            "src": "5755:348:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 19799,
              "nodeType": "Block",
              "src": "6244:1096:66",
              "statements": [
                {
                  "assignments": [
                    19694
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 19694,
                      "mutability": "mutable",
                      "name": "len",
                      "nameLocation": "6343:3:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 19799,
                      "src": "6336:10:66",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 19693,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "6336:6:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 19701,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 19696,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19682,
                          "src": "6360:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 19697,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6365:6:66",
                        "memberName": "buffer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19207,
                        "src": "6360:11:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 19698,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19682,
                          "src": "6373:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 19699,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6378:21:66",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19213,
                        "src": "6373:26:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 19695,
                      "name": "readLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19997,
                      "src": "6349:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                      }
                    },
                    "id": 19700,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6349:51:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6336:64:66"
                },
                {
                  "expression": {
                    "id": 19711,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 19702,
                      "name": "items",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19691,
                      "src": "6407:5:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          "id": 19709,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 19707,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19694,
                            "src": "6426:3:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 19708,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6432:1:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "6426:7:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        ],
                        "id": 19706,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "6415:10:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 19704,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 19703,
                              "name": "CBOR",
                              "nameLocations": [
                                "6419:4:66"
                              ],
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 19218,
                              "src": "6419:4:66"
                            },
                            "referencedDeclaration": 19218,
                            "src": "6419:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                              "typeString": "struct WitnetCBOR.CBOR"
                            }
                          },
                          "id": 19705,
                          "nodeType": "ArrayTypeName",
                          "src": "6419:6:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_storage_$dyn_storage_ptr",
                            "typeString": "struct WitnetCBOR.CBOR[]"
                          }
                        }
                      },
                      "id": 19710,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6415:19:66",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                      }
                    },
                    "src": "6407:27:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                    }
                  },
                  "id": 19712,
                  "nodeType": "ExpressionStatement",
                  "src": "6407:27:66"
                },
                {
                  "body": {
                    "id": 19791,
                    "nodeType": "Block",
                    "src": "6476:704:66",
                    "statements": [
                      {
                        "expression": {
                          "id": 19727,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 19723,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19682,
                            "src": "6529:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "id": 19724,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19682,
                                "src": "6536:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 19725,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "6541:6:66",
                              "memberName": "settle",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19519,
                              "src": "6536:11:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                                "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory)"
                              }
                            },
                            "id": 19726,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6536:13:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "src": "6529:20:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 19728,
                        "nodeType": "ExpressionStatement",
                        "src": "6529:20:66"
                      },
                      {
                        "expression": {
                          "id": 19735,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 19729,
                              "name": "items",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19691,
                              "src": "6623:5:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                              }
                            },
                            "id": 19731,
                            "indexExpression": {
                              "id": 19730,
                              "name": "ix",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19714,
                              "src": "6629:2:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "6623:9:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "id": 19732,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19682,
                                "src": "6635:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 19733,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "6640:4:66",
                              "memberName": "fork",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19495,
                              "src": "6635:9:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                                "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory)"
                              }
                            },
                            "id": 19734,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6635:11:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "src": "6623:23:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 19736,
                        "nodeType": "ExpressionStatement",
                        "src": "6623:23:66"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 19740,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 19737,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19682,
                              "src": "6659:4:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory"
                              }
                            },
                            "id": 19738,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6664:9:66",
                            "memberName": "majorType",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 19211,
                            "src": "6659:14:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 19739,
                            "name": "MAJOR_TYPE_ARRAY",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19233,
                            "src": "6677:16:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "6659:34:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 19763,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 19760,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19682,
                                "src": "6882:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 19761,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "6887:9:66",
                              "memberName": "majorType",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19211,
                              "src": "6882:14:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "id": 19762,
                              "name": "MAJOR_TYPE_MAP",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19236,
                              "src": "6900:14:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "src": "6882:32:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 19788,
                            "nodeType": "Block",
                            "src": "7095:78:66",
                            "statements": [
                              {
                                "expression": {
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "id": 19783,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 19682,
                                      "src": "7152:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 19785,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "7157:4:66",
                                    "memberName": "skip",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19639,
                                    "src": "7152:9:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                                      "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory)"
                                    }
                                  },
                                  "id": 19786,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "7152:11:66",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 19787,
                                "nodeType": "ExpressionStatement",
                                "src": "7152:11:66"
                              }
                            ]
                          },
                          "id": 19789,
                          "nodeType": "IfStatement",
                          "src": "6878:295:66",
                          "trueBody": {
                            "id": 19782,
                            "nodeType": "Block",
                            "src": "6916:173:66",
                            "statements": [
                              {
                                "assignments": [
                                  19768
                                ],
                                "declarations": [
                                  {
                                    "constant": false,
                                    "id": 19768,
                                    "mutability": "mutable",
                                    "name": "_subitems",
                                    "nameLocation": "6941:9:66",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 19782,
                                    "src": "6927:23:66",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR[]"
                                    },
                                    "typeName": {
                                      "baseType": {
                                        "id": 19766,
                                        "nodeType": "UserDefinedTypeName",
                                        "pathNode": {
                                          "id": 19765,
                                          "name": "CBOR",
                                          "nameLocations": [
                                            "6927:4:66"
                                          ],
                                          "nodeType": "IdentifierPath",
                                          "referencedDeclaration": 19218,
                                          "src": "6927:4:66"
                                        },
                                        "referencedDeclaration": 19218,
                                        "src": "6927:4:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                                          "typeString": "struct WitnetCBOR.CBOR"
                                        }
                                      },
                                      "id": 19767,
                                      "nodeType": "ArrayTypeName",
                                      "src": "6927:6:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_storage_$dyn_storage_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR[]"
                                      }
                                    },
                                    "visibility": "internal"
                                  }
                                ],
                                "id": 19772,
                                "initialValue": {
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "id": 19769,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 19682,
                                      "src": "6953:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 19770,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "6958:7:66",
                                    "memberName": "readMap",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19931,
                                    "src": "6953:12:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                                      "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                                    }
                                  },
                                  "id": 19771,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6953:14:66",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                  }
                                },
                                "nodeType": "VariableDeclarationStatement",
                                "src": "6927:40:66"
                              },
                              {
                                "expression": {
                                  "id": 19780,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 19773,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 19682,
                                    "src": "7041:4:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "baseExpression": {
                                      "id": 19774,
                                      "name": "_subitems",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 19768,
                                      "src": "7048:9:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                      }
                                    },
                                    "id": 19779,
                                    "indexExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 19778,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 19775,
                                          "name": "_subitems",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 19768,
                                          "src": "7058:9:66",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                            "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                          }
                                        },
                                        "id": 19776,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "7068:6:66",
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "7058:16:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "hexValue": "31",
                                        "id": 19777,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "7077:1:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "7058:20:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "7048:31:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "src": "7041:38:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 19781,
                                "nodeType": "ExpressionStatement",
                                "src": "7041:38:66"
                              }
                            ]
                          }
                        },
                        "id": 19790,
                        "nodeType": "IfStatement",
                        "src": "6655:518:66",
                        "trueBody": {
                          "id": 19759,
                          "nodeType": "Block",
                          "src": "6695:177:66",
                          "statements": [
                            {
                              "assignments": [
                                19745
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 19745,
                                  "mutability": "mutable",
                                  "name": "_subitems",
                                  "nameLocation": "6720:9:66",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 19759,
                                  "src": "6706:23:66",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR[]"
                                  },
                                  "typeName": {
                                    "baseType": {
                                      "id": 19743,
                                      "nodeType": "UserDefinedTypeName",
                                      "pathNode": {
                                        "id": 19742,
                                        "name": "CBOR",
                                        "nameLocations": [
                                          "6706:4:66"
                                        ],
                                        "nodeType": "IdentifierPath",
                                        "referencedDeclaration": 19218,
                                        "src": "6706:4:66"
                                      },
                                      "referencedDeclaration": 19218,
                                      "src": "6706:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR"
                                      }
                                    },
                                    "id": 19744,
                                    "nodeType": "ArrayTypeName",
                                    "src": "6706:6:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_storage_$dyn_storage_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR[]"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 19749,
                              "initialValue": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "id": 19746,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 19682,
                                    "src": "6732:4:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "id": 19747,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "6737:9:66",
                                  "memberName": "readArray",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 19800,
                                  "src": "6732:14:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                                    "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                                  }
                                },
                                "id": 19748,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6732:16:66",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "6706:42:66"
                            },
                            {
                              "expression": {
                                "id": 19757,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 19750,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19682,
                                  "src": "6824:4:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "baseExpression": {
                                    "id": 19751,
                                    "name": "_subitems",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 19745,
                                    "src": "6831:9:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                    }
                                  },
                                  "id": 19756,
                                  "indexExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 19755,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "expression": {
                                        "id": 19752,
                                        "name": "_subitems",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 19745,
                                        "src": "6841:9:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                          "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                        }
                                      },
                                      "id": 19753,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "6851:6:66",
                                      "memberName": "length",
                                      "nodeType": "MemberAccess",
                                      "src": "6841:16:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "hexValue": "31",
                                      "id": 19754,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6860:1:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "src": "6841:20:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "6831:31:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "src": "6824:38:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 19758,
                              "nodeType": "ExpressionStatement",
                              "src": "6824:38:66"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 19719,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 19717,
                      "name": "ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19714,
                      "src": "6459:2:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 19718,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19694,
                      "src": "6464:3:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "6459:8:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 19792,
                  "initializationExpression": {
                    "assignments": [
                      19714
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 19714,
                        "mutability": "mutable",
                        "name": "ix",
                        "nameLocation": "6451:2:66",
                        "nodeType": "VariableDeclaration",
                        "scope": 19792,
                        "src": "6446:7:66",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 19713,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "6446:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 19716,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 19715,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6456:1:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "6446:11:66"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 19721,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "6469:5:66",
                      "subExpression": {
                        "id": 19720,
                        "name": "ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19714,
                        "src": "6469:2:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 19722,
                    "nodeType": "ExpressionStatement",
                    "src": "6469:5:66"
                  },
                  "nodeType": "ForStatement",
                  "src": "6441:739:66"
                },
                {
                  "expression": {
                    "id": 19797,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 19793,
                        "name": "items",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19691,
                        "src": "7317:5:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                        }
                      },
                      "id": 19795,
                      "indexExpression": {
                        "id": 19794,
                        "name": "len",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19694,
                        "src": "7323:3:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7317:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 19796,
                      "name": "self",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19682,
                      "src": "7330:4:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory"
                      }
                    },
                    "src": "7317:17:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  "id": 19798,
                  "nodeType": "ExpressionStatement",
                  "src": "7317:17:66"
                }
              ]
            },
            "id": 19800,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 19685,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19682,
                    "src": "6182:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 19686,
                    "name": "MAJOR_TYPE_ARRAY",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19233,
                    "src": "6188:16:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 19687,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 19684,
                  "name": "isMajorType",
                  "nameLocations": [
                    "6170:11:66"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19297,
                  "src": "6170:11:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "6170:35:66"
              }
            ],
            "name": "readArray",
            "nameLocation": "6118:9:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19683,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19682,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "6140:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19800,
                  "src": "6128:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 19681,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19680,
                      "name": "CBOR",
                      "nameLocations": [
                        "6128:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "6128:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "6128:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6127:18:66"
            },
            "returnParameters": {
              "id": 19692,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19691,
                  "mutability": "mutable",
                  "name": "items",
                  "nameLocation": "6234:5:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19800,
                  "src": "6220:19:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 19689,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 19688,
                        "name": "CBOR",
                        "nameLocations": [
                          "6220:4:66"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 19218,
                        "src": "6220:4:66"
                      },
                      "referencedDeclaration": 19218,
                      "src": "6220:4:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                        "typeString": "struct WitnetCBOR.CBOR"
                      }
                    },
                    "id": 19690,
                    "nodeType": "ArrayTypeName",
                    "src": "6220:6:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_storage_$dyn_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6219:21:66"
            },
            "scope": 20734,
            "src": "6109:1231:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 19930,
              "nodeType": "Block",
              "src": "7477:1178:66",
              "statements": [
                {
                  "assignments": [
                    19815
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 19815,
                      "mutability": "mutable",
                      "name": "len",
                      "nameLocation": "7592:3:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 19930,
                      "src": "7585:10:66",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 19814,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "7585:6:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 19824,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 19823,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 19817,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19803,
                            "src": "7609:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 19818,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "7614:6:66",
                          "memberName": "buffer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19207,
                          "src": "7609:11:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          }
                        },
                        {
                          "expression": {
                            "id": 19819,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19803,
                            "src": "7622:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 19820,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "7627:21:66",
                          "memberName": "additionalInformation",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19213,
                          "src": "7622:26:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          },
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 19816,
                        "name": "readLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19997,
                        "src": "7598:10:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                          "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                        }
                      },
                      "id": 19821,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7598:51:66",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "*",
                    "rightExpression": {
                      "hexValue": "32",
                      "id": 19822,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7652:1:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_2_by_1",
                        "typeString": "int_const 2"
                      },
                      "value": "2"
                    },
                    "src": "7598:55:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7585:68:66"
                },
                {
                  "expression": {
                    "id": 19834,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 19825,
                      "name": "items",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19812,
                      "src": "7660:5:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          "id": 19832,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 19830,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19815,
                            "src": "7679:3:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 19831,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7685:1:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "7679:7:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        ],
                        "id": 19829,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "7668:10:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 19827,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 19826,
                              "name": "CBOR",
                              "nameLocations": [
                                "7672:4:66"
                              ],
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 19218,
                              "src": "7672:4:66"
                            },
                            "referencedDeclaration": 19218,
                            "src": "7672:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                              "typeString": "struct WitnetCBOR.CBOR"
                            }
                          },
                          "id": 19828,
                          "nodeType": "ArrayTypeName",
                          "src": "7672:6:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_storage_$dyn_storage_ptr",
                            "typeString": "struct WitnetCBOR.CBOR[]"
                          }
                        }
                      },
                      "id": 19833,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7668:19:66",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                      }
                    },
                    "src": "7660:27:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                    }
                  },
                  "id": 19835,
                  "nodeType": "ExpressionStatement",
                  "src": "7660:27:66"
                },
                {
                  "body": {
                    "id": 19922,
                    "nodeType": "Block",
                    "src": "7729:766:66",
                    "statements": [
                      {
                        "expression": {
                          "id": 19850,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 19846,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19803,
                            "src": "7782:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "id": 19847,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19803,
                                "src": "7789:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 19848,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "7794:6:66",
                              "memberName": "settle",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19519,
                              "src": "7789:11:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                                "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory)"
                              }
                            },
                            "id": 19849,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7789:13:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "src": "7782:20:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 19851,
                        "nodeType": "ExpressionStatement",
                        "src": "7782:20:66"
                      },
                      {
                        "expression": {
                          "id": 19858,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 19852,
                              "name": "items",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19812,
                              "src": "7876:5:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                              }
                            },
                            "id": 19854,
                            "indexExpression": {
                              "id": 19853,
                              "name": "ix",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19837,
                              "src": "7882:2:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7876:9:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "id": 19855,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19803,
                                "src": "7888:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 19856,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "7893:4:66",
                              "memberName": "fork",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19495,
                              "src": "7888:9:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                                "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory)"
                              }
                            },
                            "id": 19857,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7888:11:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "src": "7876:23:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 19859,
                        "nodeType": "ExpressionStatement",
                        "src": "7876:23:66"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 19869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 19864,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 19862,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 19860,
                                "name": "ix",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19837,
                                "src": "7912:2:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "%",
                              "rightExpression": {
                                "hexValue": "32",
                                "id": 19861,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7917:1:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "7912:6:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 19863,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7922:1:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "7912:11:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 19868,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 19865,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19803,
                                "src": "7927:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 19866,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "7932:9:66",
                              "memberName": "majorType",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19211,
                              "src": "7927:14:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "id": 19867,
                              "name": "MAJOR_TYPE_STRING",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19230,
                              "src": "7945:17:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "src": "7927:35:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "7912:50:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 19885,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 19880,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 19877,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19803,
                                  "src": "8056:4:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 19878,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "8061:9:66",
                                "memberName": "majorType",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 19211,
                                "src": "8056:14:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "id": 19879,
                                "name": "MAJOR_TYPE_ARRAY",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19233,
                                "src": "8074:16:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "src": "8056:34:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "||",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 19884,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 19881,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19803,
                                  "src": "8094:4:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 19882,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "8099:9:66",
                                "memberName": "majorType",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 19211,
                                "src": "8094:14:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "id": 19883,
                                "name": "MAJOR_TYPE_MAP",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19236,
                                "src": "8112:14:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "src": "8094:32:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "8056:70:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 19919,
                            "nodeType": "Block",
                            "src": "8410:78:66",
                            "statements": [
                              {
                                "expression": {
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "id": 19914,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 19803,
                                      "src": "8467:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 19916,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "8472:4:66",
                                    "memberName": "skip",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19639,
                                    "src": "8467:9:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                                      "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory)"
                                    }
                                  },
                                  "id": 19917,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "8467:11:66",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 19918,
                                "nodeType": "ExpressionStatement",
                                "src": "8467:11:66"
                              }
                            ]
                          },
                          "id": 19920,
                          "nodeType": "IfStatement",
                          "src": "8052:436:66",
                          "trueBody": {
                            "id": 19913,
                            "nodeType": "Block",
                            "src": "8128:276:66",
                            "statements": [
                              {
                                "assignments": [
                                  19890
                                ],
                                "declarations": [
                                  {
                                    "constant": false,
                                    "id": 19890,
                                    "mutability": "mutable",
                                    "name": "_subitems",
                                    "nameLocation": "8153:9:66",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 19913,
                                    "src": "8139:23:66",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR[]"
                                    },
                                    "typeName": {
                                      "baseType": {
                                        "id": 19888,
                                        "nodeType": "UserDefinedTypeName",
                                        "pathNode": {
                                          "id": 19887,
                                          "name": "CBOR",
                                          "nameLocations": [
                                            "8139:4:66"
                                          ],
                                          "nodeType": "IdentifierPath",
                                          "referencedDeclaration": 19218,
                                          "src": "8139:4:66"
                                        },
                                        "referencedDeclaration": 19218,
                                        "src": "8139:4:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                                          "typeString": "struct WitnetCBOR.CBOR"
                                        }
                                      },
                                      "id": 19889,
                                      "nodeType": "ArrayTypeName",
                                      "src": "8139:6:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_storage_$dyn_storage_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR[]"
                                      }
                                    },
                                    "visibility": "internal"
                                  }
                                ],
                                "id": 19903,
                                "initialValue": {
                                  "components": [
                                    {
                                      "condition": {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 19894,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "expression": {
                                            "id": 19891,
                                            "name": "self",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 19803,
                                            "src": "8166:4:66",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                              "typeString": "struct WitnetCBOR.CBOR memory"
                                            }
                                          },
                                          "id": 19892,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "8171:9:66",
                                          "memberName": "majorType",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 19211,
                                          "src": "8166:14:66",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                          "id": 19893,
                                          "name": "MAJOR_TYPE_ARRAY",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 19233,
                                          "src": "8184:16:66",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "src": "8166:34:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "falseExpression": {
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "expression": {
                                            "id": 19898,
                                            "name": "self",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 19803,
                                            "src": "8248:4:66",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                              "typeString": "struct WitnetCBOR.CBOR memory"
                                            }
                                          },
                                          "id": 19899,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "8253:7:66",
                                          "memberName": "readMap",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 19931,
                                          "src": "8248:12:66",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                                            "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                                          }
                                        },
                                        "id": 19900,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8248:14:66",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                          "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                        }
                                      },
                                      "id": 19901,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "Conditional",
                                      "src": "8166:96:66",
                                      "trueExpression": {
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "expression": {
                                            "id": 19895,
                                            "name": "self",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 19803,
                                            "src": "8216:4:66",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                              "typeString": "struct WitnetCBOR.CBOR memory"
                                            }
                                          },
                                          "id": 19896,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "8221:9:66",
                                          "memberName": "readArray",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 19800,
                                          "src": "8216:14:66",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                                            "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                                          }
                                        },
                                        "id": 19897,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8216:16:66",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                          "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                      }
                                    }
                                  ],
                                  "id": 19902,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "8165:108:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                  }
                                },
                                "nodeType": "VariableDeclarationStatement",
                                "src": "8139:134:66"
                              },
                              {
                                "expression": {
                                  "id": 19911,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 19904,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 19803,
                                    "src": "8356:4:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "baseExpression": {
                                      "id": 19905,
                                      "name": "_subitems",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 19890,
                                      "src": "8363:9:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                      }
                                    },
                                    "id": 19910,
                                    "indexExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 19909,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 19906,
                                          "name": "_subitems",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 19890,
                                          "src": "8373:9:66",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                                            "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                          }
                                        },
                                        "id": 19907,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "8383:6:66",
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "8373:16:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "hexValue": "31",
                                        "id": 19908,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "8392:1:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "8373:20:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "8363:31:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "src": "8356:38:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 19912,
                                "nodeType": "ExpressionStatement",
                                "src": "8356:38:66"
                              }
                            ]
                          }
                        },
                        "id": 19921,
                        "nodeType": "IfStatement",
                        "src": "7908:580:66",
                        "trueBody": {
                          "id": 19876,
                          "nodeType": "Block",
                          "src": "7964:82:66",
                          "statements": [
                            {
                              "errorCall": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 19871,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 19803,
                                      "src": "8002:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 19872,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "8007:9:66",
                                    "memberName": "majorType",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19211,
                                    "src": "8002:14:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  {
                                    "id": 19873,
                                    "name": "MAJOR_TYPE_STRING",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 19230,
                                    "src": "8018:17:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    },
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 19870,
                                  "name": "UnexpectedMajorType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19268,
                                  "src": "7982:19:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256,uint256) pure"
                                  }
                                },
                                "id": 19874,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7982:54:66",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 19875,
                              "nodeType": "RevertStatement",
                              "src": "7975:61:66"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 19842,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 19840,
                      "name": "ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19837,
                      "src": "7712:2:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 19841,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19815,
                      "src": "7717:3:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "7712:8:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 19923,
                  "initializationExpression": {
                    "assignments": [
                      19837
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 19837,
                        "mutability": "mutable",
                        "name": "ix",
                        "nameLocation": "7704:2:66",
                        "nodeType": "VariableDeclaration",
                        "scope": 19923,
                        "src": "7699:7:66",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 19836,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "7699:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 19839,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 19838,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7709:1:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7699:11:66"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 19844,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "7722:5:66",
                      "subExpression": {
                        "id": 19843,
                        "name": "ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19837,
                        "src": "7722:2:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 19845,
                    "nodeType": "ExpressionStatement",
                    "src": "7722:5:66"
                  },
                  "nodeType": "ForStatement",
                  "src": "7694:801:66"
                },
                {
                  "expression": {
                    "id": 19928,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 19924,
                        "name": "items",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19812,
                        "src": "8632:5:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                        }
                      },
                      "id": 19926,
                      "indexExpression": {
                        "id": 19925,
                        "name": "len",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19815,
                        "src": "8638:3:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "8632:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 19927,
                      "name": "self",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19803,
                      "src": "8645:4:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory"
                      }
                    },
                    "src": "8632:17:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  "id": 19929,
                  "nodeType": "ExpressionStatement",
                  "src": "8632:17:66"
                }
              ]
            },
            "id": 19931,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 19806,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19803,
                    "src": "7417:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 19807,
                    "name": "MAJOR_TYPE_MAP",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19236,
                    "src": "7423:14:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 19808,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 19805,
                  "name": "isMajorType",
                  "nameLocations": [
                    "7405:11:66"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19297,
                  "src": "7405:11:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "7405:33:66"
              }
            ],
            "name": "readMap",
            "nameLocation": "7355:7:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19804,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19803,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "7375:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19931,
                  "src": "7363:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 19802,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19801,
                      "name": "CBOR",
                      "nameLocations": [
                        "7363:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "7363:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "7363:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7362:18:66"
            },
            "returnParameters": {
              "id": 19813,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19812,
                  "mutability": "mutable",
                  "name": "items",
                  "nameLocation": "7467:5:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19931,
                  "src": "7453:19:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 19810,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 19809,
                        "name": "CBOR",
                        "nameLocations": [
                          "7453:4:66"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 19218,
                        "src": "7453:4:66"
                      },
                      "referencedDeclaration": 19218,
                      "src": "7453:4:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                        "typeString": "struct WitnetCBOR.CBOR"
                      }
                    },
                    "id": 19811,
                    "nodeType": "ArrayTypeName",
                    "src": "7453:6:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_storage_$dyn_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7452:21:66"
            },
            "scope": 20734,
            "src": "7346:1309:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 19996,
              "nodeType": "Block",
              "src": "8983:547:66",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 19944,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 19942,
                      "name": "additionalInformation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19937,
                      "src": "8994:21:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "hexValue": "3234",
                      "id": 19943,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9018:2:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_24_by_1",
                        "typeString": "int_const 24"
                      },
                      "value": "24"
                    },
                    "src": "8994:26:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 19948,
                  "nodeType": "IfStatement",
                  "src": "8990:77:66",
                  "trueBody": {
                    "id": 19947,
                    "nodeType": "Block",
                    "src": "9022:45:66",
                    "statements": [
                      {
                        "expression": {
                          "id": 19945,
                          "name": "additionalInformation",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19937,
                          "src": "9038:21:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "functionReturnParameters": 19941,
                        "id": 19946,
                        "nodeType": "Return",
                        "src": "9031:28:66"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 19951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 19949,
                      "name": "additionalInformation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19937,
                      "src": "9077:21:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3234",
                      "id": 19950,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9102:2:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_24_by_1",
                        "typeString": "int_const 24"
                      },
                      "value": "24"
                    },
                    "src": "9077:27:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 19957,
                  "nodeType": "IfStatement",
                  "src": "9073:75:66",
                  "trueBody": {
                    "id": 19956,
                    "nodeType": "Block",
                    "src": "9106:42:66",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 19952,
                              "name": "buffer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19935,
                              "src": "9122:6:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 19953,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9129:9:66",
                            "memberName": "readUint8",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18517,
                            "src": "9122:16:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_uint8_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (uint8)"
                            }
                          },
                          "id": 19954,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9122:18:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "functionReturnParameters": 19941,
                        "id": 19955,
                        "nodeType": "Return",
                        "src": "9115:25:66"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 19960,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 19958,
                      "name": "additionalInformation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19937,
                      "src": "9158:21:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3235",
                      "id": 19959,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9183:2:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_25_by_1",
                        "typeString": "int_const 25"
                      },
                      "value": "25"
                    },
                    "src": "9158:27:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 19966,
                  "nodeType": "IfStatement",
                  "src": "9154:76:66",
                  "trueBody": {
                    "id": 19965,
                    "nodeType": "Block",
                    "src": "9187:43:66",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 19961,
                              "name": "buffer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19935,
                              "src": "9203:6:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 19962,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9210:10:66",
                            "memberName": "readUint16",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18553,
                            "src": "9203:17:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_uint16_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (uint16)"
                            }
                          },
                          "id": 19963,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9203:19:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "functionReturnParameters": 19941,
                        "id": 19964,
                        "nodeType": "Return",
                        "src": "9196:26:66"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 19969,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 19967,
                      "name": "additionalInformation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19937,
                      "src": "9240:21:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3236",
                      "id": 19968,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9265:2:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_26_by_1",
                        "typeString": "int_const 26"
                      },
                      "value": "26"
                    },
                    "src": "9240:27:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 19975,
                  "nodeType": "IfStatement",
                  "src": "9236:76:66",
                  "trueBody": {
                    "id": 19974,
                    "nodeType": "Block",
                    "src": "9269:43:66",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 19970,
                              "name": "buffer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19935,
                              "src": "9285:6:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 19971,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9292:10:66",
                            "memberName": "readUint32",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18589,
                            "src": "9285:17:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_uint32_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (uint32)"
                            }
                          },
                          "id": 19972,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9285:19:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "functionReturnParameters": 19941,
                        "id": 19973,
                        "nodeType": "Return",
                        "src": "9278:26:66"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 19978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 19976,
                      "name": "additionalInformation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19937,
                      "src": "9322:21:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3237",
                      "id": 19977,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9347:2:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_27_by_1",
                        "typeString": "int_const 27"
                      },
                      "value": "27"
                    },
                    "src": "9322:27:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 19984,
                  "nodeType": "IfStatement",
                  "src": "9318:76:66",
                  "trueBody": {
                    "id": 19983,
                    "nodeType": "Block",
                    "src": "9351:43:66",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 19979,
                              "name": "buffer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19935,
                              "src": "9367:6:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 19980,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9374:10:66",
                            "memberName": "readUint64",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18625,
                            "src": "9367:17:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (uint64)"
                            }
                          },
                          "id": 19981,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9367:19:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "functionReturnParameters": 19941,
                        "id": 19982,
                        "nodeType": "Return",
                        "src": "9360:26:66"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 19987,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 19985,
                      "name": "additionalInformation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19937,
                      "src": "9404:21:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3331",
                      "id": 19986,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9429:2:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_31_by_1",
                        "typeString": "int_const 31"
                      },
                      "value": "31"
                    },
                    "src": "9404:27:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 19991,
                  "nodeType": "IfStatement",
                  "src": "9400:67:66",
                  "trueBody": {
                    "id": 19990,
                    "nodeType": "Block",
                    "src": "9433:34:66",
                    "statements": [
                      {
                        "expression": {
                          "id": 19988,
                          "name": "UINT64_MAX",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19256,
                          "src": "9449:10:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "functionReturnParameters": 19941,
                        "id": 19989,
                        "nodeType": "Return",
                        "src": "9442:17:66"
                      }
                    ]
                  }
                },
                {
                  "errorCall": {
                    "arguments": [
                      {
                        "id": 19993,
                        "name": "additionalInformation",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19937,
                        "src": "9502:21:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 19992,
                      "name": "InvalidLengthEncoding",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19262,
                      "src": "9480:21:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) pure"
                      }
                    },
                    "id": 19994,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9480:44:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 19995,
                  "nodeType": "RevertStatement",
                  "src": "9473:51:66"
                }
              ]
            },
            "documentation": {
              "id": 19932,
              "nodeType": "StructuredDocumentation",
              "src": "8661:168:66",
              "text": "Reads the length of the settle CBOR item from a buffer, consuming a different number of bytes depending on the\n value of the `additionalInformation` argument."
            },
            "id": 19997,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "readLength",
            "nameLocation": "8842:10:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 19938,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19935,
                  "mutability": "mutable",
                  "name": "buffer",
                  "nameLocation": "8888:6:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19997,
                  "src": "8861:33:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                    "typeString": "struct WitnetBuffer.Buffer"
                  },
                  "typeName": {
                    "id": 19934,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19933,
                      "name": "WitnetBuffer.Buffer",
                      "nameLocations": [
                        "8861:12:66",
                        "8874:6:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 17580,
                      "src": "8861:19:66"
                    },
                    "referencedDeclaration": 17580,
                    "src": "8861:19:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Buffer_$17580_storage_ptr",
                      "typeString": "struct WitnetBuffer.Buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 19937,
                  "mutability": "mutable",
                  "name": "additionalInformation",
                  "nameLocation": "8909:21:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 19997,
                  "src": "8903:27:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 19936,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "8903:5:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8852:85:66"
            },
            "returnParameters": {
              "id": 19941,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 19940,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 19997,
                  "src": "8972:6:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 19939,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "8972:6:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8971:8:66"
            },
            "scope": 20734,
            "src": "8833:697:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 20032,
              "nodeType": "Block",
              "src": "9841:229:66",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 20013,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 20010,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20001,
                        "src": "9852:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 20011,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9857:21:66",
                      "memberName": "additionalInformation",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19213,
                      "src": "9852:26:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3230",
                      "id": 20012,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9882:2:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_20_by_1",
                        "typeString": "int_const 20"
                      },
                      "value": "20"
                    },
                    "src": "9852:32:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 20020,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 20017,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20001,
                          "src": "9925:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 20018,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "9930:21:66",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19213,
                        "src": "9925:26:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "3231",
                        "id": 20019,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9955:2:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_21_by_1",
                          "typeString": "int_const 21"
                        },
                        "value": "21"
                      },
                      "src": "9925:32:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 20029,
                      "nodeType": "Block",
                      "src": "9993:72:66",
                      "statements": [
                        {
                          "errorCall": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 20025,
                                  "name": "cbor",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 20001,
                                  "src": "10030:4:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 20026,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "10035:21:66",
                                "memberName": "additionalInformation",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 19213,
                                "src": "10030:26:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 20024,
                              "name": "UnsupportedPrimitive",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19272,
                              "src": "10009:20:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
                                "typeString": "function (uint256) pure"
                              }
                            },
                            "id": 20027,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10009:48:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 20028,
                          "nodeType": "RevertStatement",
                          "src": "10002:55:66"
                        }
                      ]
                    },
                    "id": 20030,
                    "nodeType": "IfStatement",
                    "src": "9921:144:66",
                    "trueBody": {
                      "id": 20023,
                      "nodeType": "Block",
                      "src": "9959:28:66",
                      "statements": [
                        {
                          "expression": {
                            "hexValue": "74727565",
                            "id": 20021,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9975:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "functionReturnParameters": 20009,
                          "id": 20022,
                          "nodeType": "Return",
                          "src": "9968:11:66"
                        }
                      ]
                    }
                  },
                  "id": 20031,
                  "nodeType": "IfStatement",
                  "src": "9848:217:66",
                  "trueBody": {
                    "id": 20016,
                    "nodeType": "Block",
                    "src": "9886:29:66",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "66616c7365",
                          "id": 20014,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9902:5:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 20009,
                        "id": 20015,
                        "nodeType": "Return",
                        "src": "9895:12:66"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 19998,
              "nodeType": "StructuredDocumentation",
              "src": "9536:175:66",
              "text": "@notice Read a `CBOR` structure into a native `bool` value.\n @param cbor An instance of `CBOR`.\n @return The value represented by the input, as a `bool` value."
            },
            "id": 20033,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 20004,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 20001,
                    "src": "9787:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 20005,
                    "name": "MAJOR_TYPE_CONTENT_FREE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19242,
                    "src": "9793:23:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 20006,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 20003,
                  "name": "isMajorType",
                  "nameLocations": [
                    "9775:11:66"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19297,
                  "src": "9775:11:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "9775:42:66"
              }
            ],
            "name": "readBool",
            "nameLocation": "9724:8:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20002,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20001,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "9745:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20033,
                  "src": "9733:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 20000,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 19999,
                      "name": "CBOR",
                      "nameLocations": [
                        "9733:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "9733:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "9733:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9732:18:66"
            },
            "returnParameters": {
              "id": 20009,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20008,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 20033,
                  "src": "9832:4:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 20007,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "9832:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9831:6:66"
            },
            "scope": 20734,
            "src": "9715:355:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 20131,
              "nodeType": "Block",
              "src": "10404:786:66",
              "statements": [
                {
                  "expression": {
                    "id": 20055,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 20046,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20037,
                        "src": "10411:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 20048,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "10416:3:66",
                      "memberName": "len",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19215,
                      "src": "10411:8:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 20050,
                            "name": "cbor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20037,
                            "src": "10441:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 20051,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10446:6:66",
                          "memberName": "buffer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19207,
                          "src": "10441:11:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          }
                        },
                        {
                          "expression": {
                            "id": 20052,
                            "name": "cbor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20037,
                            "src": "10461:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 20053,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10466:21:66",
                          "memberName": "additionalInformation",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19213,
                          "src": "10461:26:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          },
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 20049,
                        "name": "readLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19997,
                        "src": "10422:10:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                          "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                        }
                      },
                      "id": 20054,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10422:72:66",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "10411:83:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "id": 20056,
                  "nodeType": "ExpressionStatement",
                  "src": "10411:83:66"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 20060,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 20057,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20037,
                        "src": "10505:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 20058,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10510:3:66",
                      "memberName": "len",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19215,
                      "src": "10505:8:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "id": 20059,
                      "name": "UINT32_MAX",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19249,
                      "src": "10517:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "10505:22:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 20129,
                    "nodeType": "Block",
                    "src": "11127:58:66",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 20124,
                                    "name": "cbor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20037,
                                    "src": "11167:4:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "id": 20125,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "11172:3:66",
                                  "memberName": "len",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 19215,
                                  "src": "11167:8:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                ],
                                "id": 20123,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "11160:6:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint32_$",
                                  "typeString": "type(uint32)"
                                },
                                "typeName": {
                                  "id": 20122,
                                  "name": "uint32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "11160:6:66",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 20126,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11160:16:66",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 20119,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20037,
                                "src": "11143:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 20120,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "11148:6:66",
                              "memberName": "buffer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19207,
                              "src": "11143:11:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 20121,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11155:4:66",
                            "memberName": "read",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 17904,
                            "src": "11143:16:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory,uint256) pure returns (bytes memory)"
                            }
                          },
                          "id": 20127,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11143:34:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "functionReturnParameters": 20045,
                        "id": 20128,
                        "nodeType": "Return",
                        "src": "11136:41:66"
                      }
                    ]
                  },
                  "id": 20130,
                  "nodeType": "IfStatement",
                  "src": "10501:684:66",
                  "trueBody": {
                    "id": 20118,
                    "nodeType": "Block",
                    "src": "10529:592:66",
                    "statements": [
                      {
                        "assignments": [
                          20062
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 20062,
                            "mutability": "mutable",
                            "name": "length",
                            "nameLocation": "10633:6:66",
                            "nodeType": "VariableDeclaration",
                            "scope": 20118,
                            "src": "10626:13:66",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            "typeName": {
                              "id": 20061,
                              "name": "uint32",
                              "nodeType": "ElementaryTypeName",
                              "src": "10626:6:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 20072,
                        "initialValue": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 20066,
                                    "name": "cbor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20037,
                                    "src": "10687:4:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "id": 20067,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "10692:6:66",
                                  "memberName": "buffer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 19207,
                                  "src": "10687:11:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                    "typeString": "struct WitnetBuffer.Buffer memory"
                                  }
                                },
                                {
                                  "expression": {
                                    "id": 20068,
                                    "name": "cbor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20037,
                                    "src": "10709:4:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "id": 20069,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "10714:9:66",
                                  "memberName": "majorType",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 19211,
                                  "src": "10709:14:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                    "typeString": "struct WitnetBuffer.Buffer memory"
                                  },
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 20065,
                                "name": "_readIndefiniteStringLength",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20733,
                                "src": "10649:27:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                                  "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                                }
                              },
                              "id": 20070,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10649:83:66",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 20064,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "10642:6:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": {
                              "id": 20063,
                              "name": "uint32",
                              "nodeType": "ElementaryTypeName",
                              "src": "10642:6:66",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 20071,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10642:91:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "10626:107:66"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 20075,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 20073,
                            "name": "length",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20062,
                            "src": "10746:6:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 20074,
                            "name": "UINT32_MAX",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19249,
                            "src": "10755:10:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "10746:19:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 20117,
                        "nodeType": "IfStatement",
                        "src": "10742:372:66",
                        "trueBody": {
                          "id": 20116,
                          "nodeType": "Block",
                          "src": "10767:347:66",
                          "statements": [
                            {
                              "expression": {
                                "id": 20085,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 20076,
                                  "name": "output",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 20044,
                                  "src": "10778:6:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "id": 20082,
                                          "name": "length",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 20062,
                                          "src": "10821:6:66",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint32",
                                            "typeString": "uint32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint32",
                                            "typeString": "uint32"
                                          }
                                        ],
                                        "expression": {
                                          "expression": {
                                            "id": 20079,
                                            "name": "cbor",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 20037,
                                            "src": "10804:4:66",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                              "typeString": "struct WitnetCBOR.CBOR memory"
                                            }
                                          },
                                          "id": 20080,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "10809:6:66",
                                          "memberName": "buffer",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 19207,
                                          "src": "10804:11:66",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                            "typeString": "struct WitnetBuffer.Buffer memory"
                                          }
                                        },
                                        "id": 20081,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "10816:4:66",
                                        "memberName": "read",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 17904,
                                        "src": "10804:16:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                                          "typeString": "function (struct WitnetBuffer.Buffer memory,uint256) pure returns (bytes memory)"
                                        }
                                      },
                                      "id": 20083,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "10804:24:66",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "expression": {
                                      "id": 20077,
                                      "name": "abi",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967295,
                                      "src": "10787:3:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_abi",
                                        "typeString": "abi"
                                      }
                                    },
                                    "id": 20078,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberLocation": "10791:12:66",
                                    "memberName": "encodePacked",
                                    "nodeType": "MemberAccess",
                                    "src": "10787:16:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                      "typeString": "function () pure returns (bytes memory)"
                                    }
                                  },
                                  "id": 20084,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "10787:42:66",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                "src": "10778:51:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 20086,
                              "nodeType": "ExpressionStatement",
                              "src": "10778:51:66"
                            },
                            {
                              "expression": {
                                "id": 20097,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 20087,
                                  "name": "length",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 20062,
                                  "src": "10840:6:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "expression": {
                                            "id": 20091,
                                            "name": "cbor",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 20037,
                                            "src": "10896:4:66",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                              "typeString": "struct WitnetCBOR.CBOR memory"
                                            }
                                          },
                                          "id": 20092,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "10901:6:66",
                                          "memberName": "buffer",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 19207,
                                          "src": "10896:11:66",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                            "typeString": "struct WitnetBuffer.Buffer memory"
                                          }
                                        },
                                        {
                                          "expression": {
                                            "id": 20093,
                                            "name": "cbor",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 20037,
                                            "src": "10920:4:66",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                              "typeString": "struct WitnetCBOR.CBOR memory"
                                            }
                                          },
                                          "id": 20094,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "10925:9:66",
                                          "memberName": "majorType",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 19211,
                                          "src": "10920:14:66",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                            "typeString": "struct WitnetBuffer.Buffer memory"
                                          },
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 20090,
                                        "name": "_readIndefiniteStringLength",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 20733,
                                        "src": "10856:27:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                                          "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                                        }
                                      },
                                      "id": 20095,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "10856:89:66",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      }
                                    ],
                                    "id": 20089,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "10849:6:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint32_$",
                                      "typeString": "type(uint32)"
                                    },
                                    "typeName": {
                                      "id": 20088,
                                      "name": "uint32",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "10849:6:66",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 20096,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "10849:97:66",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "src": "10840:106:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "id": 20098,
                              "nodeType": "ExpressionStatement",
                              "src": "10840:106:66"
                            },
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                "id": 20101,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 20099,
                                  "name": "length",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 20062,
                                  "src": "10961:6:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "id": 20100,
                                  "name": "UINT32_MAX",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19249,
                                  "src": "10970:10:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "src": "10961:19:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 20115,
                              "nodeType": "IfStatement",
                              "src": "10957:148:66",
                              "trueBody": {
                                "id": 20114,
                                "nodeType": "Block",
                                "src": "10982:123:66",
                                "statements": [
                                  {
                                    "expression": {
                                      "id": 20112,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "id": 20102,
                                        "name": "output",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 20044,
                                        "src": "10995:6:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "arguments": [
                                          {
                                            "id": 20105,
                                            "name": "output",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 20044,
                                            "src": "11035:6:66",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "id": 20109,
                                                "name": "length",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 20062,
                                                "src": "11073:6:66",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint32",
                                                  "typeString": "uint32"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint32",
                                                  "typeString": "uint32"
                                                }
                                              ],
                                              "expression": {
                                                "expression": {
                                                  "id": 20106,
                                                  "name": "cbor",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 20037,
                                                  "src": "11056:4:66",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                                  }
                                                },
                                                "id": 20107,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberLocation": "11061:6:66",
                                                "memberName": "buffer",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 19207,
                                                "src": "11056:11:66",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                                  "typeString": "struct WitnetBuffer.Buffer memory"
                                                }
                                              },
                                              "id": 20108,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberLocation": "11068:4:66",
                                              "memberName": "read",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 17904,
                                              "src": "11056:16:66",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                                                "typeString": "function (struct WitnetBuffer.Buffer memory,uint256) pure returns (bytes memory)"
                                              }
                                            },
                                            "id": 20110,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "11056:24:66",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "expression": {
                                            "id": 20103,
                                            "name": "abi",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4294967295,
                                            "src": "11004:3:66",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_magic_abi",
                                              "typeString": "abi"
                                            }
                                          },
                                          "id": 20104,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberLocation": "11008:12:66",
                                          "memberName": "encodePacked",
                                          "nodeType": "MemberAccess",
                                          "src": "11004:16:66",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                            "typeString": "function () pure returns (bytes memory)"
                                          }
                                        },
                                        "id": 20111,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11004:89:66",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      },
                                      "src": "10995:98:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    },
                                    "id": 20113,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10995:98:66"
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 20034,
              "nodeType": "StructuredDocumentation",
              "src": "10076:189:66",
              "text": "@notice Decode a `CBOR` structure into a native `bytes` value.\n @param cbor An instance of `CBOR`.\n @return output The value represented by the input, as a `bytes` value.   "
            },
            "id": 20132,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 20040,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 20037,
                    "src": "10342:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 20041,
                    "name": "MAJOR_TYPE_BYTES",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19227,
                    "src": "10348:16:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 20042,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 20039,
                  "name": "isMajorType",
                  "nameLocations": [
                    "10330:11:66"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19297,
                  "src": "10330:11:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "10330:35:66"
              }
            ],
            "name": "readBytes",
            "nameLocation": "10278:9:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20038,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20037,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "10300:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20132,
                  "src": "10288:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 20036,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 20035,
                      "name": "CBOR",
                      "nameLocations": [
                        "10288:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "10288:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "10288:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10287:18:66"
            },
            "returnParameters": {
              "id": 20045,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20044,
                  "mutability": "mutable",
                  "name": "output",
                  "nameLocation": "10393:6:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20132,
                  "src": "10380:19:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 20043,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "10380:5:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10379:21:66"
            },
            "scope": 20734,
            "src": "10269:921:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 20162,
              "nodeType": "Block",
              "src": "11866:177:66",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 20148,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 20145,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20136,
                        "src": "11877:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 20146,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11882:21:66",
                      "memberName": "additionalInformation",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19213,
                      "src": "11877:26:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3235",
                      "id": 20147,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11907:2:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_25_by_1",
                        "typeString": "int_const 25"
                      },
                      "value": "25"
                    },
                    "src": "11877:32:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 20160,
                    "nodeType": "Block",
                    "src": "11966:72:66",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 20156,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20136,
                                "src": "12003:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 20157,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "12008:21:66",
                              "memberName": "additionalInformation",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19213,
                              "src": "12003:26:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "id": 20155,
                            "name": "UnsupportedPrimitive",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19272,
                            "src": "11982:20:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) pure"
                            }
                          },
                          "id": 20158,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11982:48:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 20159,
                        "nodeType": "RevertStatement",
                        "src": "11975:55:66"
                      }
                    ]
                  },
                  "id": 20161,
                  "nodeType": "IfStatement",
                  "src": "11873:165:66",
                  "trueBody": {
                    "id": 20154,
                    "nodeType": "Block",
                    "src": "11911:49:66",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "expression": {
                                "id": 20149,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20136,
                                "src": "11927:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 20150,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "11932:6:66",
                              "memberName": "buffer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19207,
                              "src": "11927:11:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 20151,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11939:11:66",
                            "memberName": "readFloat16",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18055,
                            "src": "11927:23:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_int32_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (int32)"
                            }
                          },
                          "id": 20152,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11927:25:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int32",
                            "typeString": "int32"
                          }
                        },
                        "functionReturnParameters": 20144,
                        "id": 20153,
                        "nodeType": "Return",
                        "src": "11920:32:66"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 20133,
              "nodeType": "StructuredDocumentation",
              "src": "11196:536:66",
              "text": "@notice Decode a `CBOR` structure into a `fixed16` value.\n @dev Due to the lack of support for floating or fixed point arithmetic in the EVM, this method offsets all values\n by 5 decimal orders so as to get a fixed precision of 5 decimal positions, which should be OK for most `fixed16`\n use cases. In other words, the output of this method is 10,000 times the actual value, encoded into an `int32`.\n @param cbor An instance of `CBOR`.\n @return The value represented by the input, as an `int128` value."
            },
            "id": 20163,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 20139,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 20136,
                    "src": "11811:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 20140,
                    "name": "MAJOR_TYPE_CONTENT_FREE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19242,
                    "src": "11817:23:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 20141,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 20138,
                  "name": "isMajorType",
                  "nameLocations": [
                    "11799:11:66"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19297,
                  "src": "11799:11:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "11799:42:66"
              }
            ],
            "name": "readFloat16",
            "nameLocation": "11745:11:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20137,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20136,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "11769:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20163,
                  "src": "11757:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 20135,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 20134,
                      "name": "CBOR",
                      "nameLocations": [
                        "11757:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "11757:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "11757:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11756:18:66"
            },
            "returnParameters": {
              "id": 20144,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20143,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 20163,
                  "src": "11856:5:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int32",
                    "typeString": "int32"
                  },
                  "typeName": {
                    "id": 20142,
                    "name": "int32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11856:5:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int32",
                      "typeString": "int32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11855:7:66"
            },
            "scope": 20734,
            "src": "11736:307:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 20193,
              "nodeType": "Block",
              "src": "12710:177:66",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 20179,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 20176,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20167,
                        "src": "12721:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 20177,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "12726:21:66",
                      "memberName": "additionalInformation",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19213,
                      "src": "12721:26:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3236",
                      "id": 20178,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12751:2:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_26_by_1",
                        "typeString": "int_const 26"
                      },
                      "value": "26"
                    },
                    "src": "12721:32:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 20191,
                    "nodeType": "Block",
                    "src": "12810:72:66",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 20187,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20167,
                                "src": "12847:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 20188,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "12852:21:66",
                              "memberName": "additionalInformation",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19213,
                              "src": "12847:26:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "id": 20186,
                            "name": "UnsupportedPrimitive",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19272,
                            "src": "12826:20:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) pure"
                            }
                          },
                          "id": 20189,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12826:48:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 20190,
                        "nodeType": "RevertStatement",
                        "src": "12819:55:66"
                      }
                    ]
                  },
                  "id": 20192,
                  "nodeType": "IfStatement",
                  "src": "12717:165:66",
                  "trueBody": {
                    "id": 20185,
                    "nodeType": "Block",
                    "src": "12755:49:66",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "expression": {
                                "id": 20180,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20167,
                                "src": "12771:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 20181,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "12776:6:66",
                              "memberName": "buffer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19207,
                              "src": "12771:11:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 20182,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "12783:11:66",
                            "memberName": "readFloat32",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18193,
                            "src": "12771:23:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_int256_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (int256)"
                            }
                          },
                          "id": 20183,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12771:25:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "functionReturnParameters": 20175,
                        "id": 20184,
                        "nodeType": "Return",
                        "src": "12764:32:66"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 20164,
              "nodeType": "StructuredDocumentation",
              "src": "12049:529:66",
              "text": "@notice Decode a `CBOR` structure into a `fixed32` value.\n @dev Due to the lack of support for floating or fixed point arithmetic in the EVM, this method offsets all values\n by 9 decimal orders so as to get a fixed precision of 9 decimal positions, which should be OK for most `fixed64`\n use cases. In other words, the output of this method is 10^9 times the actual value, encoded into an `int`.\n @param cbor An instance of `CBOR`.\n @return The value represented by the input, as an `int` value."
            },
            "id": 20194,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 20170,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 20167,
                    "src": "12657:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 20171,
                    "name": "MAJOR_TYPE_CONTENT_FREE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19242,
                    "src": "12663:23:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 20172,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 20169,
                  "name": "isMajorType",
                  "nameLocations": [
                    "12645:11:66"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19297,
                  "src": "12645:11:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "12645:42:66"
              }
            ],
            "name": "readFloat32",
            "nameLocation": "12591:11:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20168,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20167,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "12615:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20194,
                  "src": "12603:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 20166,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 20165,
                      "name": "CBOR",
                      "nameLocations": [
                        "12603:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "12603:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "12603:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12602:18:66"
            },
            "returnParameters": {
              "id": 20175,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20174,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 20194,
                  "src": "12702:3:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 20173,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "12702:3:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12701:5:66"
            },
            "scope": 20734,
            "src": "12582:305:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 20224,
              "nodeType": "Block",
              "src": "13557:177:66",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 20210,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 20207,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20198,
                        "src": "13568:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 20208,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13573:21:66",
                      "memberName": "additionalInformation",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19213,
                      "src": "13568:26:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3237",
                      "id": 20209,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13598:2:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_27_by_1",
                        "typeString": "int_const 27"
                      },
                      "value": "27"
                    },
                    "src": "13568:32:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 20222,
                    "nodeType": "Block",
                    "src": "13657:72:66",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 20218,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20198,
                                "src": "13694:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 20219,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "13699:21:66",
                              "memberName": "additionalInformation",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19213,
                              "src": "13694:26:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "id": 20217,
                            "name": "UnsupportedPrimitive",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19272,
                            "src": "13673:20:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) pure"
                            }
                          },
                          "id": 20220,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13673:48:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 20221,
                        "nodeType": "RevertStatement",
                        "src": "13666:55:66"
                      }
                    ]
                  },
                  "id": 20223,
                  "nodeType": "IfStatement",
                  "src": "13564:165:66",
                  "trueBody": {
                    "id": 20216,
                    "nodeType": "Block",
                    "src": "13602:49:66",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "expression": {
                                "id": 20211,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20198,
                                "src": "13618:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 20212,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "13623:6:66",
                              "memberName": "buffer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19207,
                              "src": "13618:11:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 20213,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13630:11:66",
                            "memberName": "readFloat64",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18331,
                            "src": "13618:23:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_int256_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (int256)"
                            }
                          },
                          "id": 20214,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13618:25:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "functionReturnParameters": 20206,
                        "id": 20215,
                        "nodeType": "Return",
                        "src": "13611:32:66"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 20195,
              "nodeType": "StructuredDocumentation",
              "src": "12893:532:66",
              "text": "@notice Decode a `CBOR` structure into a `fixed64` value.\n @dev Due to the lack of support for floating or fixed point arithmetic in the EVM, this method offsets all values\n by 15 decimal orders so as to get a fixed precision of 15 decimal positions, which should be OK for most `fixed64`\n use cases. In other words, the output of this method is 10^15 times the actual value, encoded into an `int`.\n @param cbor An instance of `CBOR`.\n @return The value represented by the input, as an `int` value."
            },
            "id": 20225,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 20201,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 20198,
                    "src": "13504:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 20202,
                    "name": "MAJOR_TYPE_CONTENT_FREE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19242,
                    "src": "13510:23:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 20203,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 20200,
                  "name": "isMajorType",
                  "nameLocations": [
                    "13492:11:66"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19297,
                  "src": "13492:11:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "13492:42:66"
              }
            ],
            "name": "readFloat64",
            "nameLocation": "13438:11:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20198,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "13462:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20225,
                  "src": "13450:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 20197,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 20196,
                      "name": "CBOR",
                      "nameLocations": [
                        "13450:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "13450:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "13450:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13449:18:66"
            },
            "returnParameters": {
              "id": 20206,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20205,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 20225,
                  "src": "13549:3:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 20204,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "13549:3:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13548:5:66"
            },
            "scope": 20734,
            "src": "13429:305:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 20295,
              "nodeType": "Block",
              "src": "14093:408:66",
              "statements": [
                {
                  "assignments": [
                    20240
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 20240,
                      "mutability": "mutable",
                      "name": "length",
                      "nameLocation": "14107:6:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 20295,
                      "src": "14100:13:66",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 20239,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "14100:6:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 20247,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 20242,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20229,
                          "src": "14127:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 20243,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "14132:6:66",
                        "memberName": "buffer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19207,
                        "src": "14127:11:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 20244,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20229,
                          "src": "14140:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 20245,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "14145:21:66",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19213,
                        "src": "14140:26:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 20241,
                      "name": "readLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19997,
                      "src": "14116:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                      }
                    },
                    "id": 20246,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14116:51:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14100:67:66"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 20250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 20248,
                      "name": "length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20240,
                      "src": "14178:6:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 20249,
                      "name": "UINT64_MAX",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19256,
                      "src": "14187:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "14178:19:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 20293,
                    "nodeType": "Block",
                    "src": "14443:53:66",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "id": 20290,
                              "name": "length",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20240,
                              "src": "14481:6:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 20289,
                            "name": "InvalidLengthEncoding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19262,
                            "src": "14459:21:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) pure"
                            }
                          },
                          "id": 20291,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14459:29:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 20292,
                        "nodeType": "RevertStatement",
                        "src": "14452:36:66"
                      }
                    ]
                  },
                  "id": 20294,
                  "nodeType": "IfStatement",
                  "src": "14174:322:66",
                  "trueBody": {
                    "id": 20288,
                    "nodeType": "Block",
                    "src": "14199:238:66",
                    "statements": [
                      {
                        "expression": {
                          "id": 20257,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 20251,
                            "name": "values",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20237,
                            "src": "14208:6:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_int32_$dyn_memory_ptr",
                              "typeString": "int32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 20255,
                                "name": "length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20240,
                                "src": "14229:6:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "id": 20254,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "14217:11:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_int32_$dyn_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (int32[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 20252,
                                  "name": "int32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "14221:5:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int32",
                                    "typeString": "int32"
                                  }
                                },
                                "id": 20253,
                                "nodeType": "ArrayTypeName",
                                "src": "14221:7:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_int32_$dyn_storage_ptr",
                                  "typeString": "int32[]"
                                }
                              }
                            },
                            "id": 20256,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14217:19:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_int32_$dyn_memory_ptr",
                              "typeString": "int32[] memory"
                            }
                          },
                          "src": "14208:28:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int32_$dyn_memory_ptr",
                            "typeString": "int32[] memory"
                          }
                        },
                        "id": 20258,
                        "nodeType": "ExpressionStatement",
                        "src": "14208:28:66"
                      },
                      {
                        "body": {
                          "id": 20286,
                          "nodeType": "Block",
                          "src": "14278:152:66",
                          "statements": [
                            {
                              "assignments": [
                                20268
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 20268,
                                  "mutability": "mutable",
                                  "name": "item",
                                  "nameLocation": "14301:4:66",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 20286,
                                  "src": "14289:16:66",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR"
                                  },
                                  "typeName": {
                                    "id": 20267,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 20266,
                                      "name": "CBOR",
                                      "nameLocations": [
                                        "14289:4:66"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 19218,
                                      "src": "14289:4:66"
                                    },
                                    "referencedDeclaration": 19218,
                                    "src": "14289:4:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 20273,
                              "initialValue": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 20270,
                                      "name": "cbor",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20229,
                                      "src": "14319:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 20271,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "14324:6:66",
                                    "memberName": "buffer",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19207,
                                    "src": "14319:11:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  ],
                                  "id": 20269,
                                  "name": "fromBuffer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19468,
                                  "src": "14308:10:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$",
                                    "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (struct WitnetCBOR.CBOR memory)"
                                  }
                                },
                                "id": 20272,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "14308:23:66",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "14289:42:66"
                            },
                            {
                              "expression": {
                                "id": 20280,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 20274,
                                    "name": "values",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20237,
                                    "src": "14342:6:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_int32_$dyn_memory_ptr",
                                      "typeString": "int32[] memory"
                                    }
                                  },
                                  "id": 20276,
                                  "indexExpression": {
                                    "id": 20275,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20260,
                                    "src": "14349:1:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "14342:9:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int32",
                                    "typeString": "int32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "id": 20278,
                                      "name": "item",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20268,
                                      "src": "14366:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    ],
                                    "id": 20277,
                                    "name": "readFloat16",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20163,
                                    "src": "14354:11:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_int32_$",
                                      "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (int32)"
                                    }
                                  },
                                  "id": 20279,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14354:17:66",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int32",
                                    "typeString": "int32"
                                  }
                                },
                                "src": "14342:29:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int32",
                                  "typeString": "int32"
                                }
                              },
                              "id": 20281,
                              "nodeType": "ExpressionStatement",
                              "src": "14342:29:66"
                            },
                            {
                              "id": 20285,
                              "nodeType": "UncheckedBlock",
                              "src": "14382:39:66",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 20283,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "UnaryOperation",
                                    "operator": "++",
                                    "prefix": false,
                                    "src": "14405:4:66",
                                    "subExpression": {
                                      "id": 20282,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20260,
                                      "src": "14405:1:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      }
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  "id": 20284,
                                  "nodeType": "ExpressionStatement",
                                  "src": "14405:4:66"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          "id": 20265,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 20263,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20260,
                            "src": "14264:1:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 20264,
                            "name": "length",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20240,
                            "src": "14268:6:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "14264:10:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 20287,
                        "initializationExpression": {
                          "assignments": [
                            20260
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 20260,
                              "mutability": "mutable",
                              "name": "i",
                              "nameLocation": "14257:1:66",
                              "nodeType": "VariableDeclaration",
                              "scope": 20287,
                              "src": "14250:8:66",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              },
                              "typeName": {
                                "id": 20259,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "14250:6:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 20262,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 20261,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14261:1:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "14250:12:66"
                        },
                        "isSimpleCounterLoop": false,
                        "nodeType": "ForStatement",
                        "src": "14245:185:66"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 20226,
              "nodeType": "StructuredDocumentation",
              "src": "13740:205:66",
              "text": "@notice Decode a `CBOR` structure into a native `int128[]` value whose inner values follow the same convention \n @notice as explained in `decodeFixed16`.\n @param cbor An instance of `CBOR`."
            },
            "id": 20296,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 20232,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 20229,
                    "src": "14029:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 20233,
                    "name": "MAJOR_TYPE_ARRAY",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19233,
                    "src": "14035:16:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 20234,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 20231,
                  "name": "isMajorType",
                  "nameLocations": [
                    "14017:11:66"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19297,
                  "src": "14017:11:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "14017:35:66"
              }
            ],
            "name": "readFloat16Array",
            "nameLocation": "13958:16:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20230,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20229,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "13987:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20296,
                  "src": "13975:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 20228,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 20227,
                      "name": "CBOR",
                      "nameLocations": [
                        "13975:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "13975:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "13975:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13974:18:66"
            },
            "returnParameters": {
              "id": 20238,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20237,
                  "mutability": "mutable",
                  "name": "values",
                  "nameLocation": "14082:6:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20296,
                  "src": "14067:21:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_int32_$dyn_memory_ptr",
                    "typeString": "int32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 20235,
                      "name": "int32",
                      "nodeType": "ElementaryTypeName",
                      "src": "14067:5:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int32",
                        "typeString": "int32"
                      }
                    },
                    "id": 20236,
                    "nodeType": "ArrayTypeName",
                    "src": "14067:7:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int32_$dyn_storage_ptr",
                      "typeString": "int32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14066:23:66"
            },
            "scope": 20734,
            "src": "13949:552:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 20354,
              "nodeType": "Block",
              "src": "14769:517:66",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 20308,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 20305,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20300,
                        "src": "14780:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 20306,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14785:9:66",
                      "memberName": "majorType",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19211,
                      "src": "14780:14:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 20307,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14798:1:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "14780:19:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 20336,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 20333,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20300,
                          "src": "14965:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 20334,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "14970:9:66",
                        "memberName": "majorType",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19211,
                        "src": "14965:14:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "30",
                        "id": 20335,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14983:1:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "14965:19:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 20351,
                      "nodeType": "Block",
                      "src": "15219:62:66",
                      "statements": [
                        {
                          "errorCall": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 20346,
                                  "name": "cbor",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 20300,
                                  "src": "15255:4:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 20347,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "15260:9:66",
                                "memberName": "majorType",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 19211,
                                "src": "15255:14:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              {
                                "hexValue": "31",
                                "id": 20348,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "15271:1:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                }
                              ],
                              "id": 20345,
                              "name": "UnexpectedMajorType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19268,
                              "src": "15235:19:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$",
                                "typeString": "function (uint256,uint256) pure"
                              }
                            },
                            "id": 20349,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15235:38:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 20350,
                          "nodeType": "RevertStatement",
                          "src": "15228:45:66"
                        }
                      ]
                    },
                    "id": 20352,
                    "nodeType": "IfStatement",
                    "src": "14961:320:66",
                    "trueBody": {
                      "id": 20344,
                      "nodeType": "Block",
                      "src": "14986:222:66",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 20340,
                                    "name": "cbor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20300,
                                    "src": "15194:4:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  ],
                                  "id": 20339,
                                  "name": "readUint",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 20603,
                                  "src": "15185:8:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_uint256_$",
                                    "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (uint256)"
                                  }
                                },
                                "id": 20341,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "15185:14:66",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 20338,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "15181:3:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": {
                                "id": 20337,
                                "name": "int",
                                "nodeType": "ElementaryTypeName",
                                "src": "15181:3:66",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 20342,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15181:19:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "functionReturnParameters": 20304,
                          "id": 20343,
                          "nodeType": "Return",
                          "src": "15174:26:66"
                        }
                      ]
                    }
                  },
                  "id": 20353,
                  "nodeType": "IfStatement",
                  "src": "14776:505:66",
                  "trueBody": {
                    "id": 20332,
                    "nodeType": "Block",
                    "src": "14801:154:66",
                    "statements": [
                      {
                        "assignments": [
                          20310
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 20310,
                            "mutability": "mutable",
                            "name": "_value",
                            "nameLocation": "14817:6:66",
                            "nodeType": "VariableDeclaration",
                            "scope": 20332,
                            "src": "14810:13:66",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            },
                            "typeName": {
                              "id": 20309,
                              "name": "uint64",
                              "nodeType": "ElementaryTypeName",
                              "src": "14810:6:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 20317,
                        "initialValue": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 20312,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20300,
                                "src": "14847:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 20313,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "14852:6:66",
                              "memberName": "buffer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19207,
                              "src": "14847:11:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            {
                              "expression": {
                                "id": 20314,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20300,
                                "src": "14869:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 20315,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "14874:21:66",
                              "memberName": "additionalInformation",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 19213,
                              "src": "14869:26:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              },
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "id": 20311,
                            "name": "readLength",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19997,
                            "src": "14826:10:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                            }
                          },
                          "id": 20316,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14826:78:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "14810:94:66"
                      },
                      {
                        "expression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 20330,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "id": 20321,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "-",
                                "prefix": true,
                                "src": "14924:2:66",
                                "subExpression": {
                                  "hexValue": "31",
                                  "id": 20320,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "14925:1:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_minus_1_by_1",
                                  "typeString": "int_const -1"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_minus_1_by_1",
                                  "typeString": "int_const -1"
                                }
                              ],
                              "id": 20319,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "14920:3:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": {
                                "id": 20318,
                                "name": "int",
                                "nodeType": "ElementaryTypeName",
                                "src": "14920:3:66",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 20322,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14920:7:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 20327,
                                    "name": "_value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20310,
                                    "src": "14939:6:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  ],
                                  "id": 20326,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "14934:4:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 20325,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "14934:4:66",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 20328,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "14934:12:66",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 20324,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "14930:3:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": {
                                "id": 20323,
                                "name": "int",
                                "nodeType": "ElementaryTypeName",
                                "src": "14930:3:66",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 20329,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14930:17:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "14920:27:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "functionReturnParameters": 20304,
                        "id": 20331,
                        "nodeType": "Return",
                        "src": "14913:34:66"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 20297,
              "nodeType": "StructuredDocumentation",
              "src": "14507:182:66",
              "text": "@notice Decode a `CBOR` structure into a native `int128` value.\n @param cbor An instance of `CBOR`.\n @return The value represented by the input, as an `int128` value."
            },
            "id": 20355,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "readInt",
            "nameLocation": "14702:7:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20301,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20300,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "14722:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20355,
                  "src": "14710:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 20299,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 20298,
                      "name": "CBOR",
                      "nameLocations": [
                        "14710:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "14710:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "14710:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14709:18:66"
            },
            "returnParameters": {
              "id": 20304,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20303,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 20355,
                  "src": "14761:3:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 20302,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "14761:3:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14760:5:66"
            },
            "scope": 20734,
            "src": "14693:593:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 20425,
              "nodeType": "Block",
              "src": "15616:398:66",
              "statements": [
                {
                  "assignments": [
                    20370
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 20370,
                      "mutability": "mutable",
                      "name": "length",
                      "nameLocation": "15630:6:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 20425,
                      "src": "15623:13:66",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 20369,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "15623:6:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 20377,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 20372,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20359,
                          "src": "15650:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 20373,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "15655:6:66",
                        "memberName": "buffer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19207,
                        "src": "15650:11:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 20374,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20359,
                          "src": "15663:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 20375,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "15668:21:66",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19213,
                        "src": "15663:26:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 20371,
                      "name": "readLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19997,
                      "src": "15639:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                      }
                    },
                    "id": 20376,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15639:51:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15623:67:66"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 20380,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 20378,
                      "name": "length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20370,
                      "src": "15701:6:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 20379,
                      "name": "UINT64_MAX",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19256,
                      "src": "15710:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "15701:19:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 20423,
                    "nodeType": "Block",
                    "src": "15956:53:66",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "id": 20420,
                              "name": "length",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20370,
                              "src": "15994:6:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 20419,
                            "name": "InvalidLengthEncoding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19262,
                            "src": "15972:21:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) pure"
                            }
                          },
                          "id": 20421,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15972:29:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 20422,
                        "nodeType": "RevertStatement",
                        "src": "15965:36:66"
                      }
                    ]
                  },
                  "id": 20424,
                  "nodeType": "IfStatement",
                  "src": "15697:312:66",
                  "trueBody": {
                    "id": 20418,
                    "nodeType": "Block",
                    "src": "15722:228:66",
                    "statements": [
                      {
                        "expression": {
                          "id": 20387,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 20381,
                            "name": "array",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20367,
                            "src": "15731:5:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                              "typeString": "int256[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 20385,
                                "name": "length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20370,
                                "src": "15749:6:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "id": 20384,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "15739:9:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_int256_$dyn_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (int256[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 20382,
                                  "name": "int",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "15743:3:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "id": 20383,
                                "nodeType": "ArrayTypeName",
                                "src": "15743:5:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                                  "typeString": "int256[]"
                                }
                              }
                            },
                            "id": 20386,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15739:17:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                              "typeString": "int256[] memory"
                            }
                          },
                          "src": "15731:25:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                            "typeString": "int256[] memory"
                          }
                        },
                        "id": 20388,
                        "nodeType": "ExpressionStatement",
                        "src": "15731:25:66"
                      },
                      {
                        "body": {
                          "id": 20416,
                          "nodeType": "Block",
                          "src": "15796:147:66",
                          "statements": [
                            {
                              "assignments": [
                                20398
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 20398,
                                  "mutability": "mutable",
                                  "name": "item",
                                  "nameLocation": "15819:4:66",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 20416,
                                  "src": "15807:16:66",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR"
                                  },
                                  "typeName": {
                                    "id": 20397,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 20396,
                                      "name": "CBOR",
                                      "nameLocations": [
                                        "15807:4:66"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 19218,
                                      "src": "15807:4:66"
                                    },
                                    "referencedDeclaration": 19218,
                                    "src": "15807:4:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 20403,
                              "initialValue": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 20400,
                                      "name": "cbor",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20359,
                                      "src": "15837:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 20401,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "15842:6:66",
                                    "memberName": "buffer",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19207,
                                    "src": "15837:11:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  ],
                                  "id": 20399,
                                  "name": "fromBuffer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19468,
                                  "src": "15826:10:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$",
                                    "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (struct WitnetCBOR.CBOR memory)"
                                  }
                                },
                                "id": 20402,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "15826:23:66",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "15807:42:66"
                            },
                            {
                              "expression": {
                                "id": 20410,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 20404,
                                    "name": "array",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20367,
                                    "src": "15860:5:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                                      "typeString": "int256[] memory"
                                    }
                                  },
                                  "id": 20406,
                                  "indexExpression": {
                                    "id": 20405,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20390,
                                    "src": "15866:1:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "15860:8:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "id": 20408,
                                      "name": "item",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20398,
                                      "src": "15879:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    ],
                                    "id": 20407,
                                    "name": "readInt",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20355,
                                    "src": "15871:7:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_int256_$",
                                      "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (int256)"
                                    }
                                  },
                                  "id": 20409,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "15871:13:66",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "src": "15860:24:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "id": 20411,
                              "nodeType": "ExpressionStatement",
                              "src": "15860:24:66"
                            },
                            {
                              "id": 20415,
                              "nodeType": "UncheckedBlock",
                              "src": "15895:39:66",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 20413,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "UnaryOperation",
                                    "operator": "++",
                                    "prefix": false,
                                    "src": "15918:4:66",
                                    "subExpression": {
                                      "id": 20412,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20390,
                                      "src": "15918:1:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 20414,
                                  "nodeType": "ExpressionStatement",
                                  "src": "15918:4:66"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 20395,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 20393,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20390,
                            "src": "15782:1:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 20394,
                            "name": "length",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20370,
                            "src": "15786:6:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "15782:10:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 20417,
                        "initializationExpression": {
                          "assignments": [
                            20390
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 20390,
                              "mutability": "mutable",
                              "name": "i",
                              "nameLocation": "15775:1:66",
                              "nodeType": "VariableDeclaration",
                              "scope": 20417,
                              "src": "15770:6:66",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 20389,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "15770:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 20392,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 20391,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15779:1:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "15770:10:66"
                        },
                        "isSimpleCounterLoop": false,
                        "nodeType": "ForStatement",
                        "src": "15765:178:66"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 20356,
              "nodeType": "StructuredDocumentation",
              "src": "15292:183:66",
              "text": "@notice Decode a `CBOR` structure into a native `int[]` value.\n @param cbor instance of `CBOR`.\n @return array The value represented by the input, as an `int[]` value."
            },
            "id": 20426,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 20362,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 20359,
                    "src": "15555:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 20363,
                    "name": "MAJOR_TYPE_ARRAY",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19233,
                    "src": "15561:16:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 20364,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 20361,
                  "name": "isMajorType",
                  "nameLocations": [
                    "15543:11:66"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19297,
                  "src": "15543:11:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "15543:35:66"
              }
            ],
            "name": "readIntArray",
            "nameLocation": "15488:12:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20360,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20359,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "15513:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20426,
                  "src": "15501:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 20358,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 20357,
                      "name": "CBOR",
                      "nameLocations": [
                        "15501:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "15501:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "15501:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15500:18:66"
            },
            "returnParameters": {
              "id": 20368,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20367,
                  "mutability": "mutable",
                  "name": "array",
                  "nameLocation": "15606:5:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20426,
                  "src": "15593:18:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                    "typeString": "int256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 20365,
                      "name": "int",
                      "nodeType": "ElementaryTypeName",
                      "src": "15593:3:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "id": 20366,
                    "nodeType": "ArrayTypeName",
                    "src": "15593:5:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                      "typeString": "int256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15592:20:66"
            },
            "scope": 20734,
            "src": "15479:535:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 20510,
              "nodeType": "Block",
              "src": "16346:566:66",
              "statements": [
                {
                  "expression": {
                    "id": 20448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 20439,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20430,
                        "src": "16353:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 20441,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "16358:3:66",
                      "memberName": "len",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19215,
                      "src": "16353:8:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 20443,
                            "name": "cbor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20430,
                            "src": "16375:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 20444,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "16380:6:66",
                          "memberName": "buffer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19207,
                          "src": "16375:11:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          }
                        },
                        {
                          "expression": {
                            "id": 20445,
                            "name": "cbor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20430,
                            "src": "16388:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 20446,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "16393:21:66",
                          "memberName": "additionalInformation",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19213,
                          "src": "16388:26:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          },
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 20442,
                        "name": "readLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19997,
                        "src": "16364:10:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                          "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                        }
                      },
                      "id": 20447,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16364:51:66",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "16353:62:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "id": 20449,
                  "nodeType": "ExpressionStatement",
                  "src": "16353:62:66"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 20453,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 20450,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20430,
                        "src": "16426:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 20451,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "16431:3:66",
                      "memberName": "len",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19215,
                      "src": "16426:8:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "id": 20452,
                      "name": "UINT64_MAX",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19256,
                      "src": "16438:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "16426:22:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 20508,
                    "nodeType": "Block",
                    "src": "16845:62:66",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 20503,
                                    "name": "cbor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20430,
                                    "src": "16889:4:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "id": 20504,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "16894:3:66",
                                  "memberName": "len",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 19215,
                                  "src": "16889:8:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                ],
                                "expression": {
                                  "expression": {
                                    "id": 20500,
                                    "name": "cbor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20430,
                                    "src": "16868:4:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "id": 20501,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "16873:6:66",
                                  "memberName": "buffer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 19207,
                                  "src": "16868:11:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                    "typeString": "struct WitnetBuffer.Buffer memory"
                                  }
                                },
                                "id": 20502,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "16880:8:66",
                                "memberName": "readText",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 18484,
                                "src": "16868:20:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint64_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                                  "typeString": "function (struct WitnetBuffer.Buffer memory,uint64) pure returns (bytes memory)"
                                }
                              },
                              "id": 20505,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "16868:30:66",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 20499,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16861:6:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                              "typeString": "type(string storage pointer)"
                            },
                            "typeName": {
                              "id": 20498,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "16861:6:66",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 20506,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16861:38:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        "functionReturnParameters": 20438,
                        "id": 20507,
                        "nodeType": "Return",
                        "src": "16854:45:66"
                      }
                    ]
                  },
                  "id": 20509,
                  "nodeType": "IfStatement",
                  "src": "16422:485:66",
                  "trueBody": {
                    "id": 20497,
                    "nodeType": "Block",
                    "src": "16450:389:66",
                    "statements": [
                      {
                        "assignments": [
                          20455
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 20455,
                            "mutability": "mutable",
                            "name": "_done",
                            "nameLocation": "16464:5:66",
                            "nodeType": "VariableDeclaration",
                            "scope": 20497,
                            "src": "16459:10:66",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 20454,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "16459:4:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 20456,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "16459:10:66"
                      },
                      {
                        "body": {
                          "id": 20495,
                          "nodeType": "Block",
                          "src": "16493:339:66",
                          "statements": [
                            {
                              "assignments": [
                                20460
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 20460,
                                  "mutability": "mutable",
                                  "name": "length",
                                  "nameLocation": "16511:6:66",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 20495,
                                  "src": "16504:13:66",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  },
                                  "typeName": {
                                    "id": 20459,
                                    "name": "uint64",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "16504:6:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 20467,
                              "initialValue": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 20462,
                                      "name": "cbor",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20430,
                                      "src": "16560:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 20463,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "16565:6:66",
                                    "memberName": "buffer",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19207,
                                    "src": "16560:11:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 20464,
                                      "name": "cbor",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20430,
                                      "src": "16584:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 20465,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "16589:9:66",
                                    "memberName": "majorType",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19211,
                                    "src": "16584:14:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    },
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 20461,
                                  "name": "_readIndefiniteStringLength",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 20733,
                                  "src": "16520:27:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                                    "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                                  }
                                },
                                "id": 20466,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16520:89:66",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "16504:105:66"
                            },
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                },
                                "id": 20470,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 20468,
                                  "name": "length",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 20460,
                                  "src": "16624:6:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "id": 20469,
                                  "name": "UINT64_MAX",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19256,
                                  "src": "16633:10:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "src": "16624:19:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "id": 20493,
                                "nodeType": "Block",
                                "src": "16786:37:66",
                                "statements": [
                                  {
                                    "expression": {
                                      "id": 20491,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "id": 20489,
                                        "name": "_done",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 20455,
                                        "src": "16799:5:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "hexValue": "74727565",
                                        "id": 20490,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "16807:4:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        },
                                        "value": "true"
                                      },
                                      "src": "16799:12:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "id": 20492,
                                    "nodeType": "ExpressionStatement",
                                    "src": "16799:12:66"
                                  }
                                ]
                              },
                              "id": 20494,
                              "nodeType": "IfStatement",
                              "src": "16620:203:66",
                              "trueBody": {
                                "id": 20488,
                                "nodeType": "Block",
                                "src": "16645:135:66",
                                "statements": [
                                  {
                                    "expression": {
                                      "id": 20486,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "id": 20471,
                                        "name": "text",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 20437,
                                        "src": "16658:4:66",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "id": 20476,
                                                "name": "text",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 20437,
                                                "src": "16703:4:66",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_memory_ptr",
                                                  "typeString": "string memory"
                                                }
                                              },
                                              {
                                                "arguments": [
                                                  {
                                                    "commonType": {
                                                      "typeIdentifier": "t_uint64",
                                                      "typeString": "uint64"
                                                    },
                                                    "id": 20482,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                      "id": 20480,
                                                      "name": "length",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 20460,
                                                      "src": "16743:6:66",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_uint64",
                                                        "typeString": "uint64"
                                                      }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "/",
                                                    "rightExpression": {
                                                      "hexValue": "34",
                                                      "id": 20481,
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": true,
                                                      "kind": "number",
                                                      "lValueRequested": false,
                                                      "nodeType": "Literal",
                                                      "src": "16752:1:66",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_4_by_1",
                                                        "typeString": "int_const 4"
                                                      },
                                                      "value": "4"
                                                    },
                                                    "src": "16743:10:66",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_uint64",
                                                      "typeString": "uint64"
                                                    }
                                                  }
                                                ],
                                                "expression": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_uint64",
                                                      "typeString": "uint64"
                                                    }
                                                  ],
                                                  "expression": {
                                                    "expression": {
                                                      "id": 20477,
                                                      "name": "cbor",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 20430,
                                                      "src": "16722:4:66",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                                      }
                                                    },
                                                    "id": 20478,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberLocation": "16727:6:66",
                                                    "memberName": "buffer",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 19207,
                                                    "src": "16722:11:66",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                                    }
                                                  },
                                                  "id": 20479,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberLocation": "16734:8:66",
                                                  "memberName": "readText",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 18484,
                                                  "src": "16722:20:66",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint64_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                                                    "typeString": "function (struct WitnetBuffer.Buffer memory,uint64) pure returns (bytes memory)"
                                                  }
                                                },
                                                "id": 20483,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "nameLocations": [],
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "16722:32:66",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes_memory_ptr",
                                                  "typeString": "bytes memory"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_string_memory_ptr",
                                                  "typeString": "string memory"
                                                },
                                                {
                                                  "typeIdentifier": "t_bytes_memory_ptr",
                                                  "typeString": "bytes memory"
                                                }
                                              ],
                                              "expression": {
                                                "id": 20474,
                                                "name": "abi",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4294967295,
                                                "src": "16672:3:66",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_magic_abi",
                                                  "typeString": "abi"
                                                }
                                              },
                                              "id": 20475,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "memberLocation": "16676:12:66",
                                              "memberName": "encodePacked",
                                              "nodeType": "MemberAccess",
                                              "src": "16672:16:66",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function () pure returns (bytes memory)"
                                              }
                                            },
                                            "id": 20484,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "16672:95:66",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 20473,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "16665:6:66",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                            "typeString": "type(string storage pointer)"
                                          },
                                          "typeName": {
                                            "id": 20472,
                                            "name": "string",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "16665:6:66",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 20485,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "16665:103:66",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "src": "16658:110:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "id": 20487,
                                    "nodeType": "ExpressionStatement",
                                    "src": "16658:110:66"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "id": 20458,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "16485:6:66",
                          "subExpression": {
                            "id": 20457,
                            "name": "_done",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20455,
                            "src": "16486:5:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 20496,
                        "nodeType": "WhileStatement",
                        "src": "16478:354:66"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 20427,
              "nodeType": "StructuredDocumentation",
              "src": "16020:186:66",
              "text": "@notice Decode a `CBOR` structure into a native `string` value.\n @param cbor An instance of `CBOR`.\n @return text The value represented by the input, as a `string` value."
            },
            "id": 20511,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 20433,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 20430,
                    "src": "16284:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 20434,
                    "name": "MAJOR_TYPE_STRING",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19230,
                    "src": "16290:17:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 20435,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 20432,
                  "name": "isMajorType",
                  "nameLocations": [
                    "16272:11:66"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19297,
                  "src": "16272:11:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "16272:36:66"
              }
            ],
            "name": "readString",
            "nameLocation": "16219:10:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20431,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20430,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "16242:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20511,
                  "src": "16230:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 20429,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 20428,
                      "name": "CBOR",
                      "nameLocations": [
                        "16230:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "16230:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "16230:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "16229:18:66"
            },
            "returnParameters": {
              "id": 20438,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20437,
                  "mutability": "mutable",
                  "name": "text",
                  "nameLocation": "16337:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20511,
                  "src": "16323:18:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 20436,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "16323:6:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "16322:20:66"
            },
            "scope": 20734,
            "src": "16210:702:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 20581,
              "nodeType": "Block",
              "src": "17261:406:66",
              "statements": [
                {
                  "assignments": [
                    20526
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 20526,
                      "mutability": "mutable",
                      "name": "length",
                      "nameLocation": "17273:6:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 20581,
                      "src": "17268:11:66",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 20525,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "17268:4:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 20533,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 20528,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20515,
                          "src": "17293:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 20529,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "17298:6:66",
                        "memberName": "buffer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19207,
                        "src": "17293:11:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 20530,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20515,
                          "src": "17306:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 20531,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "17311:21:66",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19213,
                        "src": "17306:26:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 20527,
                      "name": "readLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19997,
                      "src": "17282:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                      }
                    },
                    "id": 20532,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17282:51:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17268:65:66"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 20536,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 20534,
                      "name": "length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20526,
                      "src": "17344:6:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 20535,
                      "name": "UINT64_MAX",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19256,
                      "src": "17353:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "17344:19:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 20579,
                    "nodeType": "Block",
                    "src": "17609:53:66",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "id": 20576,
                              "name": "length",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20526,
                              "src": "17647:6:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 20575,
                            "name": "InvalidLengthEncoding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19262,
                            "src": "17625:21:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) pure"
                            }
                          },
                          "id": 20577,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17625:29:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 20578,
                        "nodeType": "RevertStatement",
                        "src": "17618:36:66"
                      }
                    ]
                  },
                  "id": 20580,
                  "nodeType": "IfStatement",
                  "src": "17340:322:66",
                  "trueBody": {
                    "id": 20574,
                    "nodeType": "Block",
                    "src": "17365:238:66",
                    "statements": [
                      {
                        "expression": {
                          "id": 20543,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 20537,
                            "name": "strings",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20523,
                            "src": "17374:7:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                              "typeString": "string memory[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 20541,
                                "name": "length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20526,
                                "src": "17397:6:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 20540,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "17384:12:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (string memory[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 20538,
                                  "name": "string",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "17388:6:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage_ptr",
                                    "typeString": "string"
                                  }
                                },
                                "id": 20539,
                                "nodeType": "ArrayTypeName",
                                "src": "17388:8:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                                  "typeString": "string[]"
                                }
                              }
                            },
                            "id": 20542,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "17384:20:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                              "typeString": "string memory[] memory"
                            }
                          },
                          "src": "17374:30:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                            "typeString": "string memory[] memory"
                          }
                        },
                        "id": 20544,
                        "nodeType": "ExpressionStatement",
                        "src": "17374:30:66"
                      },
                      {
                        "body": {
                          "id": 20572,
                          "nodeType": "Block",
                          "src": "17444:152:66",
                          "statements": [
                            {
                              "assignments": [
                                20554
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 20554,
                                  "mutability": "mutable",
                                  "name": "item",
                                  "nameLocation": "17467:4:66",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 20572,
                                  "src": "17455:16:66",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR"
                                  },
                                  "typeName": {
                                    "id": 20553,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 20552,
                                      "name": "CBOR",
                                      "nameLocations": [
                                        "17455:4:66"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 19218,
                                      "src": "17455:4:66"
                                    },
                                    "referencedDeclaration": 19218,
                                    "src": "17455:4:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 20559,
                              "initialValue": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 20556,
                                      "name": "cbor",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20515,
                                      "src": "17485:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 20557,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "17490:6:66",
                                    "memberName": "buffer",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19207,
                                    "src": "17485:11:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  ],
                                  "id": 20555,
                                  "name": "fromBuffer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19468,
                                  "src": "17474:10:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$",
                                    "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (struct WitnetCBOR.CBOR memory)"
                                  }
                                },
                                "id": 20558,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "17474:23:66",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "17455:42:66"
                            },
                            {
                              "expression": {
                                "id": 20566,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 20560,
                                    "name": "strings",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20523,
                                    "src": "17508:7:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "string memory[] memory"
                                    }
                                  },
                                  "id": 20562,
                                  "indexExpression": {
                                    "id": 20561,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20546,
                                    "src": "17516:1:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "17508:10:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "id": 20564,
                                      "name": "item",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20554,
                                      "src": "17532:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    ],
                                    "id": 20563,
                                    "name": "readString",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20511,
                                    "src": "17521:10:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_string_memory_ptr_$",
                                      "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (string memory)"
                                    }
                                  },
                                  "id": 20565,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "17521:16:66",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "src": "17508:29:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              "id": 20567,
                              "nodeType": "ExpressionStatement",
                              "src": "17508:29:66"
                            },
                            {
                              "id": 20571,
                              "nodeType": "UncheckedBlock",
                              "src": "17548:39:66",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 20569,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "UnaryOperation",
                                    "operator": "++",
                                    "prefix": false,
                                    "src": "17571:4:66",
                                    "subExpression": {
                                      "id": 20568,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20546,
                                      "src": "17571:1:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 20570,
                                  "nodeType": "ExpressionStatement",
                                  "src": "17571:4:66"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 20551,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 20549,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20546,
                            "src": "17430:1:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 20550,
                            "name": "length",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20526,
                            "src": "17434:6:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "17430:10:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 20573,
                        "initializationExpression": {
                          "assignments": [
                            20546
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 20546,
                              "mutability": "mutable",
                              "name": "i",
                              "nameLocation": "17423:1:66",
                              "nodeType": "VariableDeclaration",
                              "scope": 20573,
                              "src": "17418:6:66",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 20545,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "17418:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 20548,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 20547,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17427:1:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "17418:10:66"
                        },
                        "isSimpleCounterLoop": false,
                        "nodeType": "ForStatement",
                        "src": "17413:183:66"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 20512,
              "nodeType": "StructuredDocumentation",
              "src": "16918:194:66",
              "text": "@notice Decode a `CBOR` structure into a native `string[]` value.\n @param cbor An instance of `CBOR`.\n @return strings The value represented by the input, as an `string[]` value."
            },
            "id": 20582,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 20518,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 20515,
                    "src": "17195:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 20519,
                    "name": "MAJOR_TYPE_ARRAY",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19233,
                    "src": "17201:16:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 20520,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 20517,
                  "name": "isMajorType",
                  "nameLocations": [
                    "17183:11:66"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19297,
                  "src": "17183:11:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "17183:35:66"
              }
            ],
            "name": "readStringArray",
            "nameLocation": "17125:15:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20516,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20515,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "17153:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20582,
                  "src": "17141:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 20514,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 20513,
                      "name": "CBOR",
                      "nameLocations": [
                        "17141:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "17141:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "17141:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17140:18:66"
            },
            "returnParameters": {
              "id": 20524,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20523,
                  "mutability": "mutable",
                  "name": "strings",
                  "nameLocation": "17249:7:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20582,
                  "src": "17233:23:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 20521,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "17233:6:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 20522,
                    "nodeType": "ArrayTypeName",
                    "src": "17233:8:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17232:25:66"
            },
            "scope": 20734,
            "src": "17116:551:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 20602,
              "nodeType": "Block",
              "src": "17976:92:66",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 20596,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20586,
                          "src": "18009:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 20597,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "18014:6:66",
                        "memberName": "buffer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19207,
                        "src": "18009:11:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 20598,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20586,
                          "src": "18029:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 20599,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "18034:21:66",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19213,
                        "src": "18029:26:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 20595,
                      "name": "readLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19997,
                      "src": "17990:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                      }
                    },
                    "id": 20600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17990:72:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "functionReturnParameters": 20594,
                  "id": 20601,
                  "nodeType": "Return",
                  "src": "17983:79:66"
                }
              ]
            },
            "documentation": {
              "id": 20583,
              "nodeType": "StructuredDocumentation",
              "src": "17673:182:66",
              "text": "@notice Decode a `CBOR` structure into a native `uint64` value.\n @param cbor An instance of `CBOR`.\n @return The value represented by the input, as an `uint64` value."
            },
            "id": 20603,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 20589,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 20586,
                    "src": "17931:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 20590,
                    "name": "MAJOR_TYPE_INT",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19221,
                    "src": "17937:14:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 20591,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 20588,
                  "name": "isMajorType",
                  "nameLocations": [
                    "17919:11:66"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19297,
                  "src": "17919:11:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "17919:33:66"
              }
            ],
            "name": "readUint",
            "nameLocation": "17868:8:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20587,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20586,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "17889:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20603,
                  "src": "17877:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 20585,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 20584,
                      "name": "CBOR",
                      "nameLocations": [
                        "17877:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "17877:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "17877:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17876:18:66"
            },
            "returnParameters": {
              "id": 20594,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20593,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 20603,
                  "src": "17967:4:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20592,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17967:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17966:6:66"
            },
            "scope": 20734,
            "src": "17859:209:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 20673,
              "nodeType": "Block",
              "src": "18411:406:66",
              "statements": [
                {
                  "assignments": [
                    20618
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 20618,
                      "mutability": "mutable",
                      "name": "length",
                      "nameLocation": "18425:6:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 20673,
                      "src": "18418:13:66",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 20617,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "18418:6:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 20625,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 20620,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20607,
                          "src": "18445:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 20621,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "18450:6:66",
                        "memberName": "buffer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19207,
                        "src": "18445:11:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 20622,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20607,
                          "src": "18458:4:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 20623,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "18463:21:66",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 19213,
                        "src": "18458:26:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 20619,
                      "name": "readLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19997,
                      "src": "18434:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                      }
                    },
                    "id": 20624,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18434:51:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18418:67:66"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 20628,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 20626,
                      "name": "length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20618,
                      "src": "18496:6:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 20627,
                      "name": "UINT64_MAX",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19256,
                      "src": "18505:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "18496:19:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 20671,
                    "nodeType": "Block",
                    "src": "18759:53:66",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "id": 20668,
                              "name": "length",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20618,
                              "src": "18797:6:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 20667,
                            "name": "InvalidLengthEncoding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19262,
                            "src": "18775:21:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) pure"
                            }
                          },
                          "id": 20669,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "18775:29:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 20670,
                        "nodeType": "RevertStatement",
                        "src": "18768:36:66"
                      }
                    ]
                  },
                  "id": 20672,
                  "nodeType": "IfStatement",
                  "src": "18492:320:66",
                  "trueBody": {
                    "id": 20666,
                    "nodeType": "Block",
                    "src": "18517:236:66",
                    "statements": [
                      {
                        "expression": {
                          "id": 20635,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 20629,
                            "name": "values",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20615,
                            "src": "18526:6:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 20633,
                                "name": "length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20618,
                                "src": "18546:6:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "id": 20632,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "18535:10:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (uint256[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 20630,
                                  "name": "uint",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "18539:4:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 20631,
                                "nodeType": "ArrayTypeName",
                                "src": "18539:6:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                  "typeString": "uint256[]"
                                }
                              }
                            },
                            "id": 20634,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "18535:18:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "src": "18526:27:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 20636,
                        "nodeType": "ExpressionStatement",
                        "src": "18526:27:66"
                      },
                      {
                        "body": {
                          "id": 20664,
                          "nodeType": "Block",
                          "src": "18595:151:66",
                          "statements": [
                            {
                              "assignments": [
                                20646
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 20646,
                                  "mutability": "mutable",
                                  "name": "item",
                                  "nameLocation": "18618:4:66",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 20664,
                                  "src": "18606:16:66",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR"
                                  },
                                  "typeName": {
                                    "id": 20645,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 20644,
                                      "name": "CBOR",
                                      "nameLocations": [
                                        "18606:4:66"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 19218,
                                      "src": "18606:4:66"
                                    },
                                    "referencedDeclaration": 19218,
                                    "src": "18606:4:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 20651,
                              "initialValue": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 20648,
                                      "name": "cbor",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20607,
                                      "src": "18636:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 20649,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "18641:6:66",
                                    "memberName": "buffer",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19207,
                                    "src": "18636:11:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  ],
                                  "id": 20647,
                                  "name": "fromBuffer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19468,
                                  "src": "18625:10:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$",
                                    "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (struct WitnetCBOR.CBOR memory)"
                                  }
                                },
                                "id": 20650,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "18625:23:66",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "18606:42:66"
                            },
                            {
                              "expression": {
                                "id": 20658,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 20652,
                                    "name": "values",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20615,
                                    "src": "18659:6:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                      "typeString": "uint256[] memory"
                                    }
                                  },
                                  "id": 20654,
                                  "indexExpression": {
                                    "id": 20653,
                                    "name": "ix",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20638,
                                    "src": "18666:2:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "18659:10:66",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "id": 20656,
                                      "name": "item",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20646,
                                      "src": "18681:4:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    ],
                                    "id": 20655,
                                    "name": "readUint",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 20603,
                                    "src": "18672:8:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_uint256_$",
                                      "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (uint256)"
                                    }
                                  },
                                  "id": 20657,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "18672:14:66",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "18659:27:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 20659,
                              "nodeType": "ExpressionStatement",
                              "src": "18659:27:66"
                            },
                            {
                              "id": 20663,
                              "nodeType": "UncheckedBlock",
                              "src": "18697:40:66",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 20661,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "UnaryOperation",
                                    "operator": "++",
                                    "prefix": false,
                                    "src": "18720:5:66",
                                    "subExpression": {
                                      "id": 20660,
                                      "name": "ix",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20638,
                                      "src": "18720:2:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 20662,
                                  "nodeType": "ExpressionStatement",
                                  "src": "18720:5:66"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 20643,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 20641,
                            "name": "ix",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20638,
                            "src": "18580:2:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 20642,
                            "name": "length",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20618,
                            "src": "18585:6:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "18580:11:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 20665,
                        "initializationExpression": {
                          "assignments": [
                            20638
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 20638,
                              "mutability": "mutable",
                              "name": "ix",
                              "nameLocation": "18572:2:66",
                              "nodeType": "VariableDeclaration",
                              "scope": 20665,
                              "src": "18567:7:66",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 20637,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "18567:4:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 20640,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 20639,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18577:1:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "18567:11:66"
                        },
                        "isSimpleCounterLoop": false,
                        "nodeType": "ForStatement",
                        "src": "18562:184:66"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 20604,
              "nodeType": "StructuredDocumentation",
              "src": "18074:193:66",
              "text": "@notice Decode a `CBOR` structure into a native `uint64[]` value.\n @param cbor An instance of `CBOR`.\n @return values The value represented by the input, as an `uint64[]` value."
            },
            "id": 20674,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 20610,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 20607,
                    "src": "18348:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 20611,
                    "name": "MAJOR_TYPE_ARRAY",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 19233,
                    "src": "18354:16:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 20612,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 20609,
                  "name": "isMajorType",
                  "nameLocations": [
                    "18336:11:66"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19297,
                  "src": "18336:11:66"
                },
                "nodeType": "ModifierInvocation",
                "src": "18336:35:66"
              }
            ],
            "name": "readUintArray",
            "nameLocation": "18280:13:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20608,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20607,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "18306:4:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20674,
                  "src": "18294:16:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 20606,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 20605,
                      "name": "CBOR",
                      "nameLocations": [
                        "18294:4:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "18294:4:66"
                    },
                    "referencedDeclaration": 19218,
                    "src": "18294:4:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18293:18:66"
            },
            "returnParameters": {
              "id": 20616,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20615,
                  "mutability": "mutable",
                  "name": "values",
                  "nameLocation": "18400:6:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20674,
                  "src": "18386:20:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 20613,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "18386:4:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 20614,
                    "nodeType": "ArrayTypeName",
                    "src": "18386:6:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18385:22:66"
            },
            "scope": 20734,
            "src": "18271:546:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 20732,
              "nodeType": "Block",
              "src": "19154:384:66",
              "statements": [
                {
                  "assignments": [
                    20686
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 20686,
                      "mutability": "mutable",
                      "name": "initialByte",
                      "nameLocation": "19167:11:66",
                      "nodeType": "VariableDeclaration",
                      "scope": 20732,
                      "src": "19161:17:66",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 20685,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "19161:5:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 20690,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 20687,
                        "name": "buffer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20678,
                        "src": "19181:6:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      "id": 20688,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "19188:9:66",
                      "memberName": "readUint8",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18517,
                      "src": "19181:16:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$returns$_t_uint8_$attached_to$_t_struct$_Buffer_$17580_memory_ptr_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (uint8)"
                      }
                    },
                    "id": 20689,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19181:18:66",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "19161:38:66"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 20693,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 20691,
                      "name": "initialByte",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20686,
                      "src": "19210:11:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30786666",
                      "id": 20692,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "19225:4:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_255_by_1",
                        "typeString": "int_const 255"
                      },
                      "value": "0xff"
                    },
                    "src": "19210:19:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 20697,
                  "nodeType": "IfStatement",
                  "src": "19206:59:66",
                  "trueBody": {
                    "id": 20696,
                    "nodeType": "Block",
                    "src": "19231:34:66",
                    "statements": [
                      {
                        "expression": {
                          "id": 20694,
                          "name": "UINT64_MAX",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19256,
                          "src": "19247:10:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "functionReturnParameters": 20684,
                        "id": 20695,
                        "nodeType": "Return",
                        "src": "19240:17:66"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 20705,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 20698,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20683,
                      "src": "19271:3:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 20700,
                          "name": "buffer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20678,
                          "src": "19296:6:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          }
                        },
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 20703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 20701,
                            "name": "initialByte",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20686,
                            "src": "19311:11:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "30783166",
                            "id": 20702,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "19325:4:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_31_by_1",
                              "typeString": "int_const 31"
                            },
                            "value": "0x1f"
                          },
                          "src": "19311:18:66",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          },
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 20699,
                        "name": "readLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19997,
                        "src": "19277:10:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$17580_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                          "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                        }
                      },
                      "id": 20704,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19277:59:66",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "19271:65:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "id": 20706,
                  "nodeType": "ExpressionStatement",
                  "src": "19271:65:66"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 20709,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 20707,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20683,
                      "src": "19347:3:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "id": 20708,
                      "name": "UINT64_MAX",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19256,
                      "src": "19354:10:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "19347:17:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 20720,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 20715,
                        "name": "majorType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20680,
                        "src": "19426:9:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 20718,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 20716,
                              "name": "initialByte",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20686,
                              "src": "19440:11:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "35",
                              "id": 20717,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "19455:1:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            },
                            "src": "19440:16:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "id": 20719,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "19439:18:66",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "src": "19426:31:66",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "id": 20730,
                    "nodeType": "IfStatement",
                    "src": "19422:111:66",
                    "trueBody": {
                      "id": 20729,
                      "nodeType": "Block",
                      "src": "19459:74:66",
                      "statements": [
                        {
                          "errorCall": {
                            "arguments": [
                              {
                                "components": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    },
                                    "id": 20724,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 20722,
                                      "name": "initialByte",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 20686,
                                      "src": "19496:11:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "hexValue": "35",
                                      "id": 20723,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "19511:1:66",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_5_by_1",
                                        "typeString": "int_const 5"
                                      },
                                      "value": "5"
                                    },
                                    "src": "19496:16:66",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "id": 20725,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "19495:18:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              {
                                "id": 20726,
                                "name": "majorType",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20680,
                                "src": "19515:9:66",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 20721,
                              "name": "UnexpectedMajorType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19268,
                              "src": "19475:19:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$",
                                "typeString": "function (uint256,uint256) pure"
                              }
                            },
                            "id": 20727,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "19475:50:66",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 20728,
                          "nodeType": "RevertStatement",
                          "src": "19468:57:66"
                        }
                      ]
                    }
                  },
                  "id": 20731,
                  "nodeType": "IfStatement",
                  "src": "19343:190:66",
                  "trueBody": {
                    "id": 20714,
                    "nodeType": "Block",
                    "src": "19366:50:66",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "id": 20711,
                              "name": "len",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20683,
                              "src": "19404:3:66",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 20710,
                            "name": "InvalidLengthEncoding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19262,
                            "src": "19382:21:66",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) pure"
                            }
                          },
                          "id": 20712,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19382:26:66",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 20713,
                        "nodeType": "RevertStatement",
                        "src": "19375:33:66"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 20675,
              "nodeType": "StructuredDocumentation",
              "src": "18825:168:66",
              "text": "Read the length of a CBOR indifinite-length item (arrays, maps, byte strings and text) from a buffer, consuming\n as many bytes as specified by the first byte."
            },
            "id": 20733,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_readIndefiniteStringLength",
            "nameLocation": "19006:27:66",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20681,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20678,
                  "mutability": "mutable",
                  "name": "buffer",
                  "nameLocation": "19069:6:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20733,
                  "src": "19042:33:66",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Buffer_$17580_memory_ptr",
                    "typeString": "struct WitnetBuffer.Buffer"
                  },
                  "typeName": {
                    "id": 20677,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 20676,
                      "name": "WitnetBuffer.Buffer",
                      "nameLocations": [
                        "19042:12:66",
                        "19055:6:66"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 17580,
                      "src": "19042:19:66"
                    },
                    "referencedDeclaration": 17580,
                    "src": "19042:19:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Buffer_$17580_storage_ptr",
                      "typeString": "struct WitnetBuffer.Buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20680,
                  "mutability": "mutable",
                  "name": "majorType",
                  "nameLocation": "19090:9:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20733,
                  "src": "19084:15:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 20679,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "19084:5:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19033:73:66"
            },
            "returnParameters": {
              "id": 20684,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20683,
                  "mutability": "mutable",
                  "name": "len",
                  "nameLocation": "19146:3:66",
                  "nodeType": "VariableDeclaration",
                  "scope": 20733,
                  "src": "19139:10:66",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 20682,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "19139:6:66",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19138:12:66"
            },
            "scope": 20734,
            "src": "18997:541:66",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          }
        ],
        "scope": 20735,
        "src": "536:19008:66",
        "usedErrors": [
          19258,
          19262,
          19268,
          19272,
          19276
        ],
        "usedEvents": []
      }
    ],
    "src": "35:19509:66"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.25+commit.b61c2a91.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2024-12-05T09:36:04.564Z",
  "devdoc": {
    "author": "The Witnet Foundation.",
    "details": "Most of the logic has been borrowed from Patrick Gansterer’s cbor.js library: https://github.com/paroga/cbor-js",
    "kind": "dev",
    "methods": {},
    "title": "A minimalistic implementation of “RFC 7049 Concise Binary Object Representation”",
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "notice": "This library leverages a buffer-like structure for step-by-step decoding of bytes so as to minimize the gas cost of decoding them into a useful native type.",
    "version": 1
  }
}