{
  "abi": [],
  "allSourcePaths": {
    "64": "node_modules/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol",
    "65": "node_modules/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol"
  },
  "ast": {
    "absolutePath": "node_modules/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol",
    "exportedSymbols": {
      "BufferChainlink": [
        25174
      ],
      "CBORChainlink": [
        25599
      ]
    },
    "id": 25600,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 25176,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".19"
        ],
        "nodeType": "PragmaDirective",
        "src": "32:26:65"
      },
      {
        "absolutePath": "node_modules/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol",
        "file": "./BufferChainlink.sol",
        "id": 25178,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 25600,
        "sourceUnit": 25175,
        "src": "60:56:65",
        "symbolAliases": [
          {
            "foreign": {
              "id": 25177,
              "name": "BufferChainlink",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "69:15:65",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "fullyImplemented": true,
        "id": 25599,
        "linearizedBaseContracts": [
          25599
        ],
        "name": "CBORChainlink",
        "nameLocation": "126:13:65",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 25182,
            "libraryName": {
              "id": 25179,
              "name": "BufferChainlink",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 25174,
              "src": "150:15:65"
            },
            "nodeType": "UsingForDirective",
            "src": "144:49:65",
            "typeName": {
              "id": 25181,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 25180,
                "name": "BufferChainlink.buffer",
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 24660,
                "src": "170:22:65"
              },
              "referencedDeclaration": 24660,
              "src": "170:22:65",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_buffer_$24660_storage_ptr",
                "typeString": "struct BufferChainlink.buffer"
              }
            }
          },
          {
            "constant": true,
            "id": 25185,
            "mutability": "constant",
            "name": "MAJOR_TYPE_INT",
            "nameLocation": "220:14:65",
            "nodeType": "VariableDeclaration",
            "scope": 25599,
            "src": "197:41:65",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 25183,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "197:5:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 25184,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "237:1:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 25188,
            "mutability": "constant",
            "name": "MAJOR_TYPE_NEGATIVE_INT",
            "nameLocation": "265:23:65",
            "nodeType": "VariableDeclaration",
            "scope": 25599,
            "src": "242:50:65",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 25186,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "242:5:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "31",
              "id": 25187,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "291:1:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 25191,
            "mutability": "constant",
            "name": "MAJOR_TYPE_BYTES",
            "nameLocation": "319:16:65",
            "nodeType": "VariableDeclaration",
            "scope": 25599,
            "src": "296:43:65",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 25189,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "296:5:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "32",
              "id": 25190,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "338:1:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 25194,
            "mutability": "constant",
            "name": "MAJOR_TYPE_STRING",
            "nameLocation": "366:17:65",
            "nodeType": "VariableDeclaration",
            "scope": 25599,
            "src": "343:44:65",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 25192,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "343:5:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "33",
              "id": 25193,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "386:1:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_3_by_1",
                "typeString": "int_const 3"
              },
              "value": "3"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 25197,
            "mutability": "constant",
            "name": "MAJOR_TYPE_ARRAY",
            "nameLocation": "414:16:65",
            "nodeType": "VariableDeclaration",
            "scope": 25599,
            "src": "391:43:65",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 25195,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "391:5:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "34",
              "id": 25196,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "433:1:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4_by_1",
                "typeString": "int_const 4"
              },
              "value": "4"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 25200,
            "mutability": "constant",
            "name": "MAJOR_TYPE_MAP",
            "nameLocation": "461:14:65",
            "nodeType": "VariableDeclaration",
            "scope": 25599,
            "src": "438:41:65",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 25198,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "438:5:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "35",
              "id": 25199,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "478:1:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_5_by_1",
                "typeString": "int_const 5"
              },
              "value": "5"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 25203,
            "mutability": "constant",
            "name": "MAJOR_TYPE_TAG",
            "nameLocation": "506:14:65",
            "nodeType": "VariableDeclaration",
            "scope": 25599,
            "src": "483:41:65",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 25201,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "483:5:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "36",
              "id": 25202,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "523:1:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_6_by_1",
                "typeString": "int_const 6"
              },
              "value": "6"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 25206,
            "mutability": "constant",
            "name": "MAJOR_TYPE_CONTENT_FREE",
            "nameLocation": "551:23:65",
            "nodeType": "VariableDeclaration",
            "scope": 25599,
            "src": "528:50:65",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 25204,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "528:5:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "37",
              "id": 25205,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "577:1:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_7_by_1",
                "typeString": "int_const 7"
              },
              "value": "7"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 25209,
            "mutability": "constant",
            "name": "TAG_TYPE_BIGNUM",
            "nameLocation": "606:15:65",
            "nodeType": "VariableDeclaration",
            "scope": 25599,
            "src": "583:42:65",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 25207,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "583:5:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "32",
              "id": 25208,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "624:1:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 25212,
            "mutability": "constant",
            "name": "TAG_TYPE_NEGATIVE_BIGNUM",
            "nameLocation": "652:24:65",
            "nodeType": "VariableDeclaration",
            "scope": 25599,
            "src": "629:51:65",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 25210,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "629:5:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "33",
              "id": 25211,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "679:1:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_3_by_1",
                "typeString": "int_const 3"
              },
              "value": "3"
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 25345,
              "nodeType": "Block",
              "src": "804:551:65",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 25224,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 25222,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25219,
                      "src": "813:5:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<=",
                    "rightExpression": {
                      "hexValue": "3233",
                      "id": 25223,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "822:2:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_23_by_1",
                        "typeString": "int_const 23"
                      },
                      "value": "23"
                    },
                    "src": "813:11:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 25242,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 25240,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25219,
                        "src": "894:5:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<=",
                      "rightExpression": {
                        "hexValue": "30784646",
                        "id": 25241,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "903:4:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_255_by_1",
                          "typeString": "int_const 255"
                        },
                        "value": "0xFF"
                      },
                      "src": "894:13:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 25267,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 25265,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25219,
                          "src": "1005:5:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "hexValue": "307846464646",
                          "id": 25266,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1014:6:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_65535_by_1",
                            "typeString": "int_const 65535"
                          },
                          "value": "0xFFFF"
                        },
                        "src": "1005:15:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 25292,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 25290,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25219,
                            "src": "1118:5:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "hexValue": "30784646464646464646",
                            "id": 25291,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1127:10:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4294967295_by_1",
                              "typeString": "int_const 4294967295"
                            },
                            "value": "0xFFFFFFFF"
                          },
                          "src": "1118:19:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 25317,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 25315,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25219,
                              "src": "1235:5:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "hexValue": "307846464646464646464646464646464646",
                              "id": 25316,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1244:18:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_18446744073709551615_by_1",
                                "typeString": "int_const 18446744073709551615"
                              },
                              "value": "0xFFFFFFFFFFFFFFFF"
                            },
                            "src": "1235:27:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 25340,
                          "nodeType": "IfStatement",
                          "src": "1232:119:65",
                          "trueBody": {
                            "id": 25339,
                            "nodeType": "Block",
                            "src": "1264:87:65",
                            "statements": [
                              {
                                "expression": {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "commonType": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          },
                                          "id": 25328,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "components": [
                                              {
                                                "commonType": {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                },
                                                "id": 25325,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                  "id": 25323,
                                                  "name": "major",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 25217,
                                                  "src": "1295:5:65",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_uint8",
                                                    "typeString": "uint8"
                                                  }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "<<",
                                                "rightExpression": {
                                                  "hexValue": "35",
                                                  "id": 25324,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "kind": "number",
                                                  "lValueRequested": false,
                                                  "nodeType": "Literal",
                                                  "src": "1304:1:65",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_5_by_1",
                                                    "typeString": "int_const 5"
                                                  },
                                                  "value": "5"
                                                },
                                                "src": "1295:10:65",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              }
                                            ],
                                            "id": 25326,
                                            "isConstant": false,
                                            "isInlineArray": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "TupleExpression",
                                            "src": "1294:12:65",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "|",
                                          "rightExpression": {
                                            "hexValue": "3237",
                                            "id": 25327,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "1309:2:65",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_27_by_1",
                                              "typeString": "int_const 27"
                                            },
                                            "value": "27"
                                          },
                                          "src": "1294:17:65",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 25322,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "1288:5:65",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint8_$",
                                          "typeString": "type(uint8)"
                                        },
                                        "typeName": {
                                          "id": 25321,
                                          "name": "uint8",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "1288:5:65",
                                          "typeDescriptions": {}
                                        }
                                      },
                                      "id": 25329,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1288:24:65",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    ],
                                    "expression": {
                                      "id": 25318,
                                      "name": "buf",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 25215,
                                      "src": "1272:3:65",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                        "typeString": "struct BufferChainlink.buffer memory"
                                      }
                                    },
                                    "id": 25320,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "appendUint8",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 24970,
                                    "src": "1272:15:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$24660_memory_ptr_$bound_to$_t_struct$_buffer_$24660_memory_ptr_$",
                                      "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                                    }
                                  },
                                  "id": 25330,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1272:41:65",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                    "typeString": "struct BufferChainlink.buffer memory"
                                  }
                                },
                                "id": 25331,
                                "nodeType": "ExpressionStatement",
                                "src": "1272:41:65"
                              },
                              {
                                "expression": {
                                  "arguments": [
                                    {
                                      "id": 25335,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 25219,
                                      "src": "1335:5:65",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "hexValue": "38",
                                      "id": 25336,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "1342:1:65",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_8_by_1",
                                        "typeString": "int_const 8"
                                      },
                                      "value": "8"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_8_by_1",
                                        "typeString": "int_const 8"
                                      }
                                    ],
                                    "expression": {
                                      "id": 25332,
                                      "name": "buf",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 25215,
                                      "src": "1321:3:65",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                        "typeString": "struct BufferChainlink.buffer memory"
                                      }
                                    },
                                    "id": 25334,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "appendInt",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 25173,
                                    "src": "1321:13:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$24660_memory_ptr_$bound_to$_t_struct$_buffer_$24660_memory_ptr_$",
                                      "typeString": "function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"
                                    }
                                  },
                                  "id": 25337,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1321:23:65",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                    "typeString": "struct BufferChainlink.buffer memory"
                                  }
                                },
                                "id": 25338,
                                "nodeType": "ExpressionStatement",
                                "src": "1321:23:65"
                              }
                            ]
                          }
                        },
                        "id": 25341,
                        "nodeType": "IfStatement",
                        "src": "1115:236:65",
                        "trueBody": {
                          "id": 25314,
                          "nodeType": "Block",
                          "src": "1139:87:65",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 25303,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "components": [
                                            {
                                              "commonType": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              },
                                              "id": 25300,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "leftExpression": {
                                                "id": 25298,
                                                "name": "major",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 25217,
                                                "src": "1170:5:65",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint8",
                                                  "typeString": "uint8"
                                                }
                                              },
                                              "nodeType": "BinaryOperation",
                                              "operator": "<<",
                                              "rightExpression": {
                                                "hexValue": "35",
                                                "id": 25299,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1179:1:65",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_5_by_1",
                                                  "typeString": "int_const 5"
                                                },
                                                "value": "5"
                                              },
                                              "src": "1170:10:65",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            }
                                          ],
                                          "id": 25301,
                                          "isConstant": false,
                                          "isInlineArray": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "TupleExpression",
                                          "src": "1169:12:65",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "|",
                                        "rightExpression": {
                                          "hexValue": "3236",
                                          "id": 25302,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "1184:2:65",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_26_by_1",
                                            "typeString": "int_const 26"
                                          },
                                          "value": "26"
                                        },
                                        "src": "1169:17:65",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 25297,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "1163:5:65",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 25296,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1163:5:65",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 25304,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1163:24:65",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "expression": {
                                    "id": 25293,
                                    "name": "buf",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 25215,
                                    "src": "1147:3:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                      "typeString": "struct BufferChainlink.buffer memory"
                                    }
                                  },
                                  "id": 25295,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "appendUint8",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 24970,
                                  "src": "1147:15:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$24660_memory_ptr_$bound_to$_t_struct$_buffer_$24660_memory_ptr_$",
                                    "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                                  }
                                },
                                "id": 25305,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1147:41:65",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                  "typeString": "struct BufferChainlink.buffer memory"
                                }
                              },
                              "id": 25306,
                              "nodeType": "ExpressionStatement",
                              "src": "1147:41:65"
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "id": 25310,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 25219,
                                    "src": "1210:5:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "hexValue": "34",
                                    "id": 25311,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1217:1:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_4_by_1",
                                      "typeString": "int_const 4"
                                    },
                                    "value": "4"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_4_by_1",
                                      "typeString": "int_const 4"
                                    }
                                  ],
                                  "expression": {
                                    "id": 25307,
                                    "name": "buf",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 25215,
                                    "src": "1196:3:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                      "typeString": "struct BufferChainlink.buffer memory"
                                    }
                                  },
                                  "id": 25309,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "appendInt",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 25173,
                                  "src": "1196:13:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$24660_memory_ptr_$bound_to$_t_struct$_buffer_$24660_memory_ptr_$",
                                    "typeString": "function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"
                                  }
                                },
                                "id": 25312,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1196:23:65",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                  "typeString": "struct BufferChainlink.buffer memory"
                                }
                              },
                              "id": 25313,
                              "nodeType": "ExpressionStatement",
                              "src": "1196:23:65"
                            }
                          ]
                        }
                      },
                      "id": 25342,
                      "nodeType": "IfStatement",
                      "src": "1002:349:65",
                      "trueBody": {
                        "id": 25289,
                        "nodeType": "Block",
                        "src": "1022:87:65",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "id": 25278,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "components": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            },
                                            "id": 25275,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "id": 25273,
                                              "name": "major",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 25217,
                                              "src": "1053:5:65",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<<",
                                            "rightExpression": {
                                              "hexValue": "35",
                                              "id": 25274,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "1062:1:65",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_5_by_1",
                                                "typeString": "int_const 5"
                                              },
                                              "value": "5"
                                            },
                                            "src": "1053:10:65",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          }
                                        ],
                                        "id": 25276,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "1052:12:65",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "|",
                                      "rightExpression": {
                                        "hexValue": "3235",
                                        "id": 25277,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1067:2:65",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_25_by_1",
                                          "typeString": "int_const 25"
                                        },
                                        "value": "25"
                                      },
                                      "src": "1052:17:65",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    ],
                                    "id": 25272,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "1046:5:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 25271,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1046:5:65",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 25279,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1046:24:65",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "expression": {
                                  "id": 25268,
                                  "name": "buf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25215,
                                  "src": "1030:3:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                    "typeString": "struct BufferChainlink.buffer memory"
                                  }
                                },
                                "id": 25270,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "appendUint8",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 24970,
                                "src": "1030:15:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$24660_memory_ptr_$bound_to$_t_struct$_buffer_$24660_memory_ptr_$",
                                  "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                                }
                              },
                              "id": 25280,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1030:41:65",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              }
                            },
                            "id": 25281,
                            "nodeType": "ExpressionStatement",
                            "src": "1030:41:65"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 25285,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25219,
                                  "src": "1093:5:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "hexValue": "32",
                                  "id": 25286,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1100:1:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  },
                                  "value": "2"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  }
                                ],
                                "expression": {
                                  "id": 25282,
                                  "name": "buf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25215,
                                  "src": "1079:3:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                    "typeString": "struct BufferChainlink.buffer memory"
                                  }
                                },
                                "id": 25284,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "appendInt",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 25173,
                                "src": "1079:13:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$24660_memory_ptr_$bound_to$_t_struct$_buffer_$24660_memory_ptr_$",
                                  "typeString": "function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"
                                }
                              },
                              "id": 25287,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1079:23:65",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              }
                            },
                            "id": 25288,
                            "nodeType": "ExpressionStatement",
                            "src": "1079:23:65"
                          }
                        ]
                      }
                    },
                    "id": 25343,
                    "nodeType": "IfStatement",
                    "src": "891:460:65",
                    "trueBody": {
                      "id": 25264,
                      "nodeType": "Block",
                      "src": "909:87:65",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    },
                                    "id": 25253,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "components": [
                                        {
                                          "commonType": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          },
                                          "id": 25250,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "id": 25248,
                                            "name": "major",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 25217,
                                            "src": "940:5:65",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "<<",
                                          "rightExpression": {
                                            "hexValue": "35",
                                            "id": 25249,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "949:1:65",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_5_by_1",
                                              "typeString": "int_const 5"
                                            },
                                            "value": "5"
                                          },
                                          "src": "940:10:65",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "id": 25251,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "TupleExpression",
                                      "src": "939:12:65",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "|",
                                    "rightExpression": {
                                      "hexValue": "3234",
                                      "id": 25252,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "954:2:65",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_24_by_1",
                                        "typeString": "int_const 24"
                                      },
                                      "value": "24"
                                    },
                                    "src": "939:17:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 25247,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "933:5:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint8_$",
                                    "typeString": "type(uint8)"
                                  },
                                  "typeName": {
                                    "id": 25246,
                                    "name": "uint8",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "933:5:65",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 25254,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "933:24:65",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "expression": {
                                "id": 25243,
                                "name": "buf",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25215,
                                "src": "917:3:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                  "typeString": "struct BufferChainlink.buffer memory"
                                }
                              },
                              "id": 25245,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "appendUint8",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24970,
                              "src": "917:15:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$24660_memory_ptr_$bound_to$_t_struct$_buffer_$24660_memory_ptr_$",
                                "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                              }
                            },
                            "id": 25255,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "917:41:65",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                              "typeString": "struct BufferChainlink.buffer memory"
                            }
                          },
                          "id": 25256,
                          "nodeType": "ExpressionStatement",
                          "src": "917:41:65"
                        },
                        {
                          "expression": {
                            "arguments": [
                              {
                                "id": 25260,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25219,
                                "src": "980:5:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "hexValue": "31",
                                "id": 25261,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "987:1:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                }
                              ],
                              "expression": {
                                "id": 25257,
                                "name": "buf",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25215,
                                "src": "966:3:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                  "typeString": "struct BufferChainlink.buffer memory"
                                }
                              },
                              "id": 25259,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "appendInt",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25173,
                              "src": "966:13:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$24660_memory_ptr_$bound_to$_t_struct$_buffer_$24660_memory_ptr_$",
                                "typeString": "function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"
                              }
                            },
                            "id": 25262,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "966:23:65",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                              "typeString": "struct BufferChainlink.buffer memory"
                            }
                          },
                          "id": 25263,
                          "nodeType": "ExpressionStatement",
                          "src": "966:23:65"
                        }
                      ]
                    }
                  },
                  "id": 25344,
                  "nodeType": "IfStatement",
                  "src": "810:541:65",
                  "trueBody": {
                    "id": 25239,
                    "nodeType": "Block",
                    "src": "826:59:65",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 25235,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "components": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 25232,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 25230,
                                          "name": "major",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 25217,
                                          "src": "857:5:65",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<<",
                                        "rightExpression": {
                                          "hexValue": "35",
                                          "id": 25231,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "866:1:65",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_5_by_1",
                                            "typeString": "int_const 5"
                                          },
                                          "value": "5"
                                        },
                                        "src": "857:10:65",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "id": 25233,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "856:12:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "|",
                                  "rightExpression": {
                                    "id": 25234,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 25219,
                                    "src": "871:5:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "856:20:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 25229,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "850:5:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint8_$",
                                  "typeString": "type(uint8)"
                                },
                                "typeName": {
                                  "id": 25228,
                                  "name": "uint8",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "850:5:65",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 25236,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "850:27:65",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "expression": {
                              "id": 25225,
                              "name": "buf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25215,
                              "src": "834:3:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              }
                            },
                            "id": 25227,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "appendUint8",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24970,
                            "src": "834:15:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$24660_memory_ptr_$bound_to$_t_struct$_buffer_$24660_memory_ptr_$",
                              "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                            }
                          },
                          "id": 25237,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "834:44:65",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                            "typeString": "struct BufferChainlink.buffer memory"
                          }
                        },
                        "id": 25238,
                        "nodeType": "ExpressionStatement",
                        "src": "834:44:65"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 25346,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeType",
            "nameLocation": "694:10:65",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25220,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25215,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "740:3:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25346,
                  "src": "710:33:65",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 25214,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25213,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 24660,
                      "src": "710:22:65"
                    },
                    "referencedDeclaration": 24660,
                    "src": "710:22:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25217,
                  "mutability": "mutable",
                  "name": "major",
                  "nameLocation": "755:5:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25346,
                  "src": "749:11:65",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 25216,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "749:5:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25219,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "771:5:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25346,
                  "src": "766:10:65",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25218,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "766:4:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "704:76:65"
            },
            "returnParameters": {
              "id": 25221,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "804:0:65"
            },
            "scope": 25599,
            "src": "685:670:65",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 25368,
              "nodeType": "Block",
              "src": "1478:52:65",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 25364,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 25361,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 25359,
                                    "name": "major",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 25351,
                                    "src": "1507:5:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<<",
                                  "rightExpression": {
                                    "hexValue": "35",
                                    "id": 25360,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1516:1:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_5_by_1",
                                      "typeString": "int_const 5"
                                    },
                                    "value": "5"
                                  },
                                  "src": "1507:10:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "id": 25362,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "1506:12:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "hexValue": "3331",
                              "id": 25363,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1521:2:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_31_by_1",
                                "typeString": "int_const 31"
                              },
                              "value": "31"
                            },
                            "src": "1506:17:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 25358,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1500:5:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint8_$",
                            "typeString": "type(uint8)"
                          },
                          "typeName": {
                            "id": 25357,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "1500:5:65",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25365,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1500:24:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "expression": {
                        "id": 25354,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25349,
                        "src": "1484:3:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25356,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "appendUint8",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24970,
                      "src": "1484:15:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$24660_memory_ptr_$bound_to$_t_struct$_buffer_$24660_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                      }
                    },
                    "id": 25366,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1484:41:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                      "typeString": "struct BufferChainlink.buffer memory"
                    }
                  },
                  "id": 25367,
                  "nodeType": "ExpressionStatement",
                  "src": "1484:41:65"
                }
              ]
            },
            "id": 25369,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeIndefiniteLengthType",
            "nameLocation": "1368:26:65",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25352,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25349,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "1430:3:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25369,
                  "src": "1400:33:65",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 25348,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25347,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 24660,
                      "src": "1400:22:65"
                    },
                    "referencedDeclaration": 24660,
                    "src": "1400:22:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25351,
                  "mutability": "mutable",
                  "name": "major",
                  "nameLocation": "1445:5:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25369,
                  "src": "1439:11:65",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 25350,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1439:5:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1394:60:65"
            },
            "returnParameters": {
              "id": 25353,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1478:0:65"
            },
            "scope": 25599,
            "src": "1359:171:65",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 25383,
              "nodeType": "Block",
              "src": "1637:49:65",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25378,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25372,
                        "src": "1654:3:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "id": 25379,
                        "name": "MAJOR_TYPE_INT",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25185,
                        "src": "1659:14:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "id": 25380,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25374,
                        "src": "1675:5:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 25377,
                      "name": "encodeType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25346,
                      "src": "1643:10:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$_t_uint256_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8,uint256) pure"
                      }
                    },
                    "id": 25381,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1643:38:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25382,
                  "nodeType": "ExpressionStatement",
                  "src": "1643:38:65"
                }
              ]
            },
            "id": 25384,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeUInt",
            "nameLocation": "1543:10:65",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25375,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25372,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "1589:3:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25384,
                  "src": "1559:33:65",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 25371,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25370,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 24660,
                      "src": "1559:22:65"
                    },
                    "referencedDeclaration": 24660,
                    "src": "1559:22:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25374,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "1603:5:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25384,
                  "src": "1598:10:65",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25373,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1598:4:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1553:59:65"
            },
            "returnParameters": {
              "id": 25376,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1637:0:65"
            },
            "scope": 25599,
            "src": "1534:152:65",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 25440,
              "nodeType": "Block",
              "src": "1791:323:65",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 25395,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 25392,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25389,
                      "src": "1800:5:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 25394,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "-",
                      "prefix": true,
                      "src": "1808:20:65",
                      "subExpression": {
                        "hexValue": "30783130303030303030303030303030303030",
                        "id": 25393,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1809:19:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_18446744073709551616_by_1",
                          "typeString": "int_const 18446744073709551616"
                        },
                        "value": "0x10000000000000000"
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_minus_18446744073709551616_by_1",
                        "typeString": "int_const -18446744073709551616"
                      }
                    },
                    "src": "1800:28:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "id": 25404,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 25402,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25389,
                        "src": "1884:5:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "hexValue": "307846464646464646464646464646464646",
                        "id": 25403,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1892:18:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_18446744073709551615_by_1",
                          "typeString": "int_const 18446744073709551615"
                        },
                        "value": "0xFFFFFFFFFFFFFFFF"
                      },
                      "src": "1884:26:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 25413,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 25411,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25389,
                          "src": "1960:5:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 25412,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1969:1:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1960:10:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "id": 25436,
                        "nodeType": "Block",
                        "src": "2037:73:65",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 25425,
                                  "name": "buf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25387,
                                  "src": "2056:3:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                    "typeString": "struct BufferChainlink.buffer memory"
                                  }
                                },
                                {
                                  "id": 25426,
                                  "name": "MAJOR_TYPE_NEGATIVE_INT",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25188,
                                  "src": "2061:23:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      },
                                      "id": 25432,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "id": 25430,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "UnaryOperation",
                                        "operator": "-",
                                        "prefix": true,
                                        "src": "2091:2:65",
                                        "subExpression": {
                                          "hexValue": "31",
                                          "id": 25429,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "2092:1:65",
                                          "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"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "id": 25431,
                                        "name": "value",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 25389,
                                        "src": "2096:5:65",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "src": "2091:10:65",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    ],
                                    "id": 25428,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "2086:4:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 25427,
                                      "name": "uint",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "2086:4:65",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 25433,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2086:16:65",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                    "typeString": "struct BufferChainlink.buffer memory"
                                  },
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 25424,
                                "name": "encodeType",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25346,
                                "src": "2045:10:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$_t_uint256_$returns$__$",
                                  "typeString": "function (struct BufferChainlink.buffer memory,uint8,uint256) pure"
                                }
                              },
                              "id": 25434,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2045:58:65",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 25435,
                            "nodeType": "ExpressionStatement",
                            "src": "2045:58:65"
                          }
                        ]
                      },
                      "id": 25437,
                      "nodeType": "IfStatement",
                      "src": "1957:153:65",
                      "trueBody": {
                        "id": 25423,
                        "nodeType": "Block",
                        "src": "1972:59:65",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 25415,
                                  "name": "buf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25387,
                                  "src": "1991:3:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                    "typeString": "struct BufferChainlink.buffer memory"
                                  }
                                },
                                {
                                  "id": 25416,
                                  "name": "MAJOR_TYPE_INT",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25185,
                                  "src": "1996:14:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "id": 25419,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 25389,
                                      "src": "2017:5:65",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    ],
                                    "id": 25418,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "2012:4:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 25417,
                                      "name": "uint",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "2012:4:65",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 25420,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2012:11:65",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                    "typeString": "struct BufferChainlink.buffer memory"
                                  },
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 25414,
                                "name": "encodeType",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25346,
                                "src": "1980:10:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$_t_uint256_$returns$__$",
                                  "typeString": "function (struct BufferChainlink.buffer memory,uint8,uint256) pure"
                                }
                              },
                              "id": 25421,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1980:44:65",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 25422,
                            "nodeType": "ExpressionStatement",
                            "src": "1980:44:65"
                          }
                        ]
                      }
                    },
                    "id": 25438,
                    "nodeType": "IfStatement",
                    "src": "1881:229:65",
                    "trueBody": {
                      "id": 25410,
                      "nodeType": "Block",
                      "src": "1912:39:65",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "id": 25406,
                                "name": "buf",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25387,
                                "src": "1933:3:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                  "typeString": "struct BufferChainlink.buffer memory"
                                }
                              },
                              {
                                "id": 25407,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25389,
                                "src": "1938:5:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                  "typeString": "struct BufferChainlink.buffer memory"
                                },
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "id": 25405,
                              "name": "encodeBigNum",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25497,
                              "src": "1920:12:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_int256_$returns$__$",
                                "typeString": "function (struct BufferChainlink.buffer memory,int256) pure"
                              }
                            },
                            "id": 25408,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1920:24:65",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 25409,
                          "nodeType": "ExpressionStatement",
                          "src": "1920:24:65"
                        }
                      ]
                    }
                  },
                  "id": 25439,
                  "nodeType": "IfStatement",
                  "src": "1797:313:65",
                  "trueBody": {
                    "id": 25401,
                    "nodeType": "Block",
                    "src": "1830:45:65",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 25397,
                              "name": "buf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25387,
                              "src": "1857:3:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              }
                            },
                            {
                              "id": 25398,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25389,
                              "src": "1862:5:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              },
                              {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            ],
                            "id": 25396,
                            "name": "encodeSignedBigNum",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25534,
                            "src": "1838:18:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_int256_$returns$__$",
                              "typeString": "function (struct BufferChainlink.buffer memory,int256) pure"
                            }
                          },
                          "id": 25399,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1838:30:65",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 25400,
                        "nodeType": "ExpressionStatement",
                        "src": "1838:30:65"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 25441,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeInt",
            "nameLocation": "1699:9:65",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25390,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25387,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "1744:3:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25441,
                  "src": "1714:33:65",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 25386,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25385,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 24660,
                      "src": "1714:22:65"
                    },
                    "referencedDeclaration": 24660,
                    "src": "1714:22:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25389,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "1757:5:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25441,
                  "src": "1753:9:65",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 25388,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "1753:3:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1708:58:65"
            },
            "returnParameters": {
              "id": 25391,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1791:0:65"
            },
            "scope": 25599,
            "src": "1690:424:65",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 25462,
              "nodeType": "Block",
              "src": "2230:81:65",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25450,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25444,
                        "src": "2247:3:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "id": 25451,
                        "name": "MAJOR_TYPE_BYTES",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25191,
                        "src": "2252:16:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "expression": {
                          "id": 25452,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25446,
                          "src": "2270:5:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 25453,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "2270:12:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 25449,
                      "name": "encodeType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25346,
                      "src": "2236:10:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$_t_uint256_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8,uint256) pure"
                      }
                    },
                    "id": 25454,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2236:47:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25455,
                  "nodeType": "ExpressionStatement",
                  "src": "2236:47:65"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25459,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25446,
                        "src": "2300:5:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 25456,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25444,
                        "src": "2289:3:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25458,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24917,
                      "src": "2289:10:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$24660_memory_ptr_$bound_to$_t_struct$_buffer_$24660_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"
                      }
                    },
                    "id": 25460,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2289:17:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                      "typeString": "struct BufferChainlink.buffer memory"
                    }
                  },
                  "id": 25461,
                  "nodeType": "ExpressionStatement",
                  "src": "2289:17:65"
                }
              ]
            },
            "id": 25463,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeBytes",
            "nameLocation": "2127:11:65",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25447,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25444,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "2174:3:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25463,
                  "src": "2144:33:65",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 25443,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25442,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 24660,
                      "src": "2144:22:65"
                    },
                    "referencedDeclaration": 24660,
                    "src": "2144:22:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25446,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "2196:5:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25463,
                  "src": "2183:18:65",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 25445,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2183:5:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2138:67:65"
            },
            "returnParameters": {
              "id": 25448,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2230:0:65"
            },
            "scope": 25599,
            "src": "2118:193:65",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 25496,
              "nodeType": "Block",
              "src": "2419:121:65",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 25481,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 25478,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 25476,
                                    "name": "MAJOR_TYPE_TAG",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 25203,
                                    "src": "2448:14:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<<",
                                  "rightExpression": {
                                    "hexValue": "35",
                                    "id": 25477,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2466:1:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_5_by_1",
                                      "typeString": "int_const 5"
                                    },
                                    "value": "5"
                                  },
                                  "src": "2448:19:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "id": 25479,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2447:21:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "id": 25480,
                              "name": "TAG_TYPE_BIGNUM",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25209,
                              "src": "2471:15:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "src": "2447:39:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 25475,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2441:5:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint8_$",
                            "typeString": "type(uint8)"
                          },
                          "typeName": {
                            "id": 25474,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "2441:5:65",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25482,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2441:46:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "expression": {
                        "id": 25471,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25466,
                        "src": "2425:3:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25473,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "appendUint8",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24970,
                      "src": "2425:15:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$24660_memory_ptr_$bound_to$_t_struct$_buffer_$24660_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                      }
                    },
                    "id": 25483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2425:63:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                      "typeString": "struct BufferChainlink.buffer memory"
                    }
                  },
                  "id": 25484,
                  "nodeType": "ExpressionStatement",
                  "src": "2425:63:65"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25486,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25466,
                        "src": "2506:3:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 25491,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25468,
                                "src": "2527:5:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "id": 25490,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2522:4:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 25489,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "2522:4:65",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 25492,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2522:11:65",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 25487,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "2511:3:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 25488,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "2511:10:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 25493,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2511:23:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 25485,
                      "name": "encodeBytes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25463,
                      "src": "2494:11:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,bytes memory) pure"
                      }
                    },
                    "id": 25494,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2494:41:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25495,
                  "nodeType": "ExpressionStatement",
                  "src": "2494:41:65"
                }
              ]
            },
            "id": 25497,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeBigNum",
            "nameLocation": "2324:12:65",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25469,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25466,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "2372:3:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25497,
                  "src": "2342:33:65",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 25465,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25464,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 24660,
                      "src": "2342:22:65"
                    },
                    "referencedDeclaration": 24660,
                    "src": "2342:22:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25468,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "2385:5:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25497,
                  "src": "2381:9:65",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 25467,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "2381:3:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2336:58:65"
            },
            "returnParameters": {
              "id": 25470,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2419:0:65"
            },
            "scope": 25599,
            "src": "2315:225:65",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 25533,
              "nodeType": "Block",
              "src": "2654:135:65",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 25515,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 25512,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 25510,
                                    "name": "MAJOR_TYPE_TAG",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 25203,
                                    "src": "2683:14:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<<",
                                  "rightExpression": {
                                    "hexValue": "35",
                                    "id": 25511,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2701:1:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_5_by_1",
                                      "typeString": "int_const 5"
                                    },
                                    "value": "5"
                                  },
                                  "src": "2683:19:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "id": 25513,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2682:21:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "|",
                            "rightExpression": {
                              "id": 25514,
                              "name": "TAG_TYPE_NEGATIVE_BIGNUM",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25212,
                              "src": "2706:24:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "src": "2682:48:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          ],
                          "id": 25509,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2676:5:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint8_$",
                            "typeString": "type(uint8)"
                          },
                          "typeName": {
                            "id": 25508,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "2676:5:65",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25516,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2676:55:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "expression": {
                        "id": 25505,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25500,
                        "src": "2660:3:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25507,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "appendUint8",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24970,
                      "src": "2660:15:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$24660_memory_ptr_$bound_to$_t_struct$_buffer_$24660_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"
                      }
                    },
                    "id": 25517,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2660:72:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                      "typeString": "struct BufferChainlink.buffer memory"
                    }
                  },
                  "id": 25518,
                  "nodeType": "ExpressionStatement",
                  "src": "2660:72:65"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25520,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25500,
                        "src": "2750:3:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                },
                                "id": 25528,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 25526,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "UnaryOperation",
                                  "operator": "-",
                                  "prefix": true,
                                  "src": "2771:2:65",
                                  "subExpression": {
                                    "hexValue": "31",
                                    "id": 25525,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2772:1:65",
                                    "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"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "id": 25527,
                                  "name": "input",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25502,
                                  "src": "2776:5:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "src": "2771:10:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "id": 25524,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2766:4:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 25523,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "2766:4:65",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 25529,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2766:16:65",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 25521,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "2755:3:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 25522,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "2755:10:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 25530,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2755:28:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 25519,
                      "name": "encodeBytes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25463,
                      "src": "2738:11:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,bytes memory) pure"
                      }
                    },
                    "id": 25531,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2738:46:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25532,
                  "nodeType": "ExpressionStatement",
                  "src": "2738:46:65"
                }
              ]
            },
            "id": 25534,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeSignedBigNum",
            "nameLocation": "2553:18:65",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25503,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25500,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "2607:3:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25534,
                  "src": "2577:33:65",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 25499,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25498,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 24660,
                      "src": "2577:22:65"
                    },
                    "referencedDeclaration": 24660,
                    "src": "2577:22:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25502,
                  "mutability": "mutable",
                  "name": "input",
                  "nameLocation": "2620:5:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25534,
                  "src": "2616:9:65",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 25501,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "2616:3:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2571:58:65"
            },
            "returnParameters": {
              "id": 25504,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2654:0:65"
            },
            "scope": 25599,
            "src": "2544:245:65",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 25561,
              "nodeType": "Block",
              "src": "2907:96:65",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25543,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25537,
                        "src": "2924:3:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "id": 25544,
                        "name": "MAJOR_TYPE_STRING",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25194,
                        "src": "2929:17:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 25547,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25539,
                              "src": "2954:5:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "id": 25546,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2948:5:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                              "typeString": "type(bytes storage pointer)"
                            },
                            "typeName": {
                              "id": 25545,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "2948:5:65",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 25548,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2948:12:65",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 25549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "2948:19:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 25542,
                      "name": "encodeType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25346,
                      "src": "2913:10:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$_t_uint256_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8,uint256) pure"
                      }
                    },
                    "id": 25550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2913:55:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25551,
                  "nodeType": "ExpressionStatement",
                  "src": "2913:55:65"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 25557,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25539,
                            "src": "2991:5:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 25556,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2985:5:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                            "typeString": "type(bytes storage pointer)"
                          },
                          "typeName": {
                            "id": 25555,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "2985:5:65",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25558,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2985:12:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 25552,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25537,
                        "src": "2974:3:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25554,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24917,
                      "src": "2974:10:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$24660_memory_ptr_$bound_to$_t_struct$_buffer_$24660_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"
                      }
                    },
                    "id": 25559,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2974:24:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                      "typeString": "struct BufferChainlink.buffer memory"
                    }
                  },
                  "id": 25560,
                  "nodeType": "ExpressionStatement",
                  "src": "2974:24:65"
                }
              ]
            },
            "id": 25562,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeString",
            "nameLocation": "2802:12:65",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25540,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25537,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "2850:3:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25562,
                  "src": "2820:33:65",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 25536,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25535,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 24660,
                      "src": "2820:22:65"
                    },
                    "referencedDeclaration": 24660,
                    "src": "2820:22:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25539,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "2873:5:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25562,
                  "src": "2859:19:65",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 25538,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2859:6:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2814:68:65"
            },
            "returnParameters": {
              "id": 25541,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2907:0:65"
            },
            "scope": 25599,
            "src": "2793:210:65",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 25573,
              "nodeType": "Block",
              "src": "3094:60:65",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25569,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25565,
                        "src": "3127:3:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "id": 25570,
                        "name": "MAJOR_TYPE_ARRAY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25197,
                        "src": "3132:16:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 25568,
                      "name": "encodeIndefiniteLengthType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25369,
                      "src": "3100:26:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure"
                      }
                    },
                    "id": 25571,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3100:49:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25572,
                  "nodeType": "ExpressionStatement",
                  "src": "3100:49:65"
                }
              ]
            },
            "id": 25574,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startArray",
            "nameLocation": "3016:10:65",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25566,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25565,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "3062:3:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25574,
                  "src": "3032:33:65",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 25564,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25563,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 24660,
                      "src": "3032:22:65"
                    },
                    "referencedDeclaration": 24660,
                    "src": "3032:22:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3026:43:65"
            },
            "returnParameters": {
              "id": 25567,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3094:0:65"
            },
            "scope": 25599,
            "src": "3007:147:65",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 25585,
              "nodeType": "Block",
              "src": "3243:58:65",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25581,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25577,
                        "src": "3276:3:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "id": 25582,
                        "name": "MAJOR_TYPE_MAP",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25200,
                        "src": "3281:14:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 25580,
                      "name": "encodeIndefiniteLengthType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25369,
                      "src": "3249:26:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure"
                      }
                    },
                    "id": 25583,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3249:47:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25584,
                  "nodeType": "ExpressionStatement",
                  "src": "3249:47:65"
                }
              ]
            },
            "id": 25586,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startMap",
            "nameLocation": "3167:8:65",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25577,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "3211:3:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25586,
                  "src": "3181:33:65",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 25576,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25575,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 24660,
                      "src": "3181:22:65"
                    },
                    "referencedDeclaration": 24660,
                    "src": "3181:22:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3175:43:65"
            },
            "returnParameters": {
              "id": 25579,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3243:0:65"
            },
            "scope": 25599,
            "src": "3158:143:65",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 25597,
              "nodeType": "Block",
              "src": "3393:67:65",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25593,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25589,
                        "src": "3426:3:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "id": 25594,
                        "name": "MAJOR_TYPE_CONTENT_FREE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25206,
                        "src": "3431:23:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 25592,
                      "name": "encodeIndefiniteLengthType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25369,
                      "src": "3399:26:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$24660_memory_ptr_$_t_uint8_$returns$__$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint8) pure"
                      }
                    },
                    "id": 25595,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3399:56:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25596,
                  "nodeType": "ExpressionStatement",
                  "src": "3399:56:65"
                }
              ]
            },
            "id": 25598,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "endSequence",
            "nameLocation": "3314:11:65",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25590,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25589,
                  "mutability": "mutable",
                  "name": "buf",
                  "nameLocation": "3361:3:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 25598,
                  "src": "3331:33:65",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$24660_memory_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  },
                  "typeName": {
                    "id": 25588,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25587,
                      "name": "BufferChainlink.buffer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 24660,
                      "src": "3331:22:65"
                    },
                    "referencedDeclaration": 24660,
                    "src": "3331:22:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$24660_storage_ptr",
                      "typeString": "struct BufferChainlink.buffer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3325:43:65"
            },
            "returnParameters": {
              "id": 25591,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3393:0:65"
            },
            "scope": 25599,
            "src": "3305:155:65",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 25600,
        "src": "118:3344:65",
        "usedErrors": []
      }
    ],
    "src": "32:3431:65"
  },
  "bytecode": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fcbdb70645bde3b53a1063f5ce824888b17f78383c5c54f86663668c75678bac64736f6c63430008060033",
  "bytecodeSha1": "1ce946f6a4eaa185320328620ccf999b9e86db7c",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.6+commit.11564f7e"
  },
  "contractName": "CBORChainlink",
  "coverageMap": {
    "branches": {
      "64": {},
      "65": {}
    },
    "statements": {
      "64": {},
      "65": {}
    }
  },
  "dependencies": [
    "BufferChainlink"
  ],
  "deployedBytecode": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fcbdb70645bde3b53a1063f5ce824888b17f78383c5c54f86663668c75678bac64736f6c63430008060033",
  "deployedSourceMap": "118:3344:65:-:0;;;;;;;;",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    118,
    3462
  ],
  "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC 0xBD 0xB7 MOD GASLIMIT 0xBD 0xE3 0xB5 GASPRICE LT PUSH4 0xF5CE8248 DUP9 0xB1 PUSH32 0x78383C5C54F86663668C75678BAC64736F6C6343000806003300000000000000 ",
  "pcMap": {
    "0": {
      "offset": [
        118,
        3462
      ],
      "op": "PUSH20",
      "path": "65",
      "value": "0x0"
    },
    "21": {
      "fn": null,
      "offset": [
        118,
        3462
      ],
      "op": "ADDRESS",
      "path": "65"
    },
    "22": {
      "fn": null,
      "offset": [
        118,
        3462
      ],
      "op": "EQ",
      "path": "65"
    },
    "23": {
      "fn": null,
      "offset": [
        118,
        3462
      ],
      "op": "PUSH1",
      "path": "65",
      "value": "0x80"
    },
    "25": {
      "fn": null,
      "offset": [
        118,
        3462
      ],
      "op": "PUSH1",
      "path": "65",
      "value": "0x40"
    },
    "27": {
      "fn": null,
      "offset": [
        118,
        3462
      ],
      "op": "MSTORE",
      "path": "65"
    },
    "28": {
      "fn": null,
      "offset": [
        118,
        3462
      ],
      "op": "PUSH1",
      "path": "65",
      "value": "0x0"
    },
    "30": {
      "fn": null,
      "offset": [
        118,
        3462
      ],
      "op": "DUP1",
      "path": "65"
    },
    "31": {
      "fn": null,
      "offset": [
        118,
        3462
      ],
      "op": "REVERT",
      "path": "65"
    }
  },
  "sha1": "600c63fece019c2e96abd80ee9421ebf17f569c9",
  "source": "// SPDX-License-Identifier: MIT\npragma solidity >= 0.4.19;\n\nimport { BufferChainlink } from \"./BufferChainlink.sol\";\n\nlibrary CBORChainlink {\n  using BufferChainlink for BufferChainlink.buffer;\n\n  uint8 private constant MAJOR_TYPE_INT = 0;\n  uint8 private constant MAJOR_TYPE_NEGATIVE_INT = 1;\n  uint8 private constant MAJOR_TYPE_BYTES = 2;\n  uint8 private constant MAJOR_TYPE_STRING = 3;\n  uint8 private constant MAJOR_TYPE_ARRAY = 4;\n  uint8 private constant MAJOR_TYPE_MAP = 5;\n  uint8 private constant MAJOR_TYPE_TAG = 6;\n  uint8 private constant MAJOR_TYPE_CONTENT_FREE = 7;\n\n  uint8 private constant TAG_TYPE_BIGNUM = 2;\n  uint8 private constant TAG_TYPE_NEGATIVE_BIGNUM = 3;\n\n  function encodeType(\n    BufferChainlink.buffer memory buf,\n    uint8 major,\n    uint value\n  )\n    private\n    pure\n  {\n    if(value <= 23) {\n      buf.appendUint8(uint8((major << 5) | value));\n    } else if(value <= 0xFF) {\n      buf.appendUint8(uint8((major << 5) | 24));\n      buf.appendInt(value, 1);\n    } else if(value <= 0xFFFF) {\n      buf.appendUint8(uint8((major << 5) | 25));\n      buf.appendInt(value, 2);\n    } else if(value <= 0xFFFFFFFF) {\n      buf.appendUint8(uint8((major << 5) | 26));\n      buf.appendInt(value, 4);\n    } else if(value <= 0xFFFFFFFFFFFFFFFF) {\n      buf.appendUint8(uint8((major << 5) | 27));\n      buf.appendInt(value, 8);\n    }\n  }\n\n  function encodeIndefiniteLengthType(\n    BufferChainlink.buffer memory buf,\n    uint8 major\n  )\n    private\n    pure\n  {\n    buf.appendUint8(uint8((major << 5) | 31));\n  }\n\n  function encodeUInt(\n    BufferChainlink.buffer memory buf,\n    uint value\n  )\n    internal\n    pure\n  {\n    encodeType(buf, MAJOR_TYPE_INT, value);\n  }\n\n  function encodeInt(\n    BufferChainlink.buffer memory buf,\n    int value\n  )\n    internal\n    pure\n  {\n    if(value < -0x10000000000000000) {\n      encodeSignedBigNum(buf, value);\n    } else if(value > 0xFFFFFFFFFFFFFFFF) {\n      encodeBigNum(buf, value);\n    } else if(value >= 0) {\n      encodeType(buf, MAJOR_TYPE_INT, uint(value));\n    } else {\n      encodeType(buf, MAJOR_TYPE_NEGATIVE_INT, uint(-1 - value));\n    }\n  }\n\n  function encodeBytes(\n    BufferChainlink.buffer memory buf,\n    bytes memory value\n  )\n    internal\n    pure\n  {\n    encodeType(buf, MAJOR_TYPE_BYTES, value.length);\n    buf.append(value);\n  }\n\n  function encodeBigNum(\n    BufferChainlink.buffer memory buf,\n    int value\n  )\n    internal\n    pure\n  {\n    buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_BIGNUM));\n    encodeBytes(buf, abi.encode(uint(value)));\n  }\n\n  function encodeSignedBigNum(\n    BufferChainlink.buffer memory buf,\n    int input\n  )\n    internal\n    pure\n  {\n    buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_NEGATIVE_BIGNUM));\n    encodeBytes(buf, abi.encode(uint(-1 - input)));\n  }\n\n  function encodeString(\n    BufferChainlink.buffer memory buf,\n    string memory value\n  )\n    internal\n    pure\n  {\n    encodeType(buf, MAJOR_TYPE_STRING, bytes(value).length);\n    buf.append(bytes(value));\n  }\n\n  function startArray(\n    BufferChainlink.buffer memory buf\n  )\n    internal\n    pure\n  {\n    encodeIndefiniteLengthType(buf, MAJOR_TYPE_ARRAY);\n  }\n\n  function startMap(\n    BufferChainlink.buffer memory buf\n  )\n    internal\n    pure\n  {\n    encodeIndefiniteLengthType(buf, MAJOR_TYPE_MAP);\n  }\n\n  function endSequence(\n    BufferChainlink.buffer memory buf\n  )\n    internal\n    pure\n  {\n    encodeIndefiniteLengthType(buf, MAJOR_TYPE_CONTENT_FREE);\n  }\n}\n",
  "sourceMap": "118:3344:65:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;118:3344:65;;;;;;;;;;;;;;;;;",
  "sourcePath": "node_modules/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol",
  "type": "library"
}