{
  "contractName": "StorageMockChainB",
  "abi": [],
  "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058200a1d6c0a39eb20b0bccab925553cc47e1989bb54d24b8efb425cf6548e0d537f0029",
  "deployedBytecode": "0x6080604052600080fd00a165627a7a723058200a1d6c0a39eb20b0bccab925553cc47e1989bb54d24b8efb425cf6548e0d537f0029",
  "sourceMap": "761:100:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;761:100:17;;;;;;;",
  "deployedSourceMap": "761:100:17:-;;;;;",
  "source": "pragma solidity ^0.4.24;\n\nimport \"./StorageMocks.sol\";\nimport \"mock-dependency/contracts/DependencyStorageMock.sol\";\n\ncontract StorageMockWithReferences {\n  StorageMockWithEnums.MyEnum internal my_enum;\n  StorageMockWithStructs.MyStruct internal my_struct;\n  SimpleStorageMock internal my_contract;\n}\n\ncontract StorageMockWithNodeModulesReferences {\n  DependencyStorageMock.MyEnum internal my_enum;\n  DependencyStorageMock.MyStruct internal my_struct;\n  DependencyStorageMock internal my_contract;\n}\n\ncontract StorageMockChainBase {\n  uint256 internal base;\n}\n\ncontract StorageMockChainA1 is StorageMockChainBase {\n  uint256 internal a1;\n  uint256 internal a2;\n}\n\ncontract StorageMockChainA2 is StorageMockChainA1 {\n  uint256 public a3;\n  uint256 public a4;\n}\n\ncontract StorageMockChainB is StorageMockChainBase {\n  uint256 internal b1;\n  uint256 internal b2;\n}\n\ncontract StorageMockChainChild is StorageMockChainA2, StorageMockChainB {\n  uint256 internal child;\n\n  function slots() public pure returns(uint256 baseSlot, uint256 a1Slot, uint256 a3Slot, uint256 b1Slot, uint256 childSlot) {\n    assembly {\n      baseSlot := base_slot\n      a1Slot := a1_slot\n      a3Slot := a3_slot\n      b1Slot := b1_slot\n      childSlot := child_slot\n    }\n  }\n}",
  "sourcePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/StorageMocks2.sol",
  "ast": {
    "absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/StorageMocks2.sol",
    "exportedSymbols": {
      "StorageMockChainA1": [
        2327
      ],
      "StorageMockChainA2": [
        2334
      ],
      "StorageMockChainB": [
        2341
      ],
      "StorageMockChainBase": [
        2320
      ],
      "StorageMockChainChild": [
        2363
      ],
      "StorageMockWithNodeModulesReferences": [
        2317
      ],
      "StorageMockWithReferences": [
        2310
      ]
    },
    "id": 2364,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2301,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:17"
      },
      {
        "absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/StorageMocks.sol",
        "file": "./StorageMocks.sol",
        "id": 2302,
        "nodeType": "ImportDirective",
        "scope": 2364,
        "sourceUnit": 2300,
        "src": "26:28:17",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "mock-dependency/contracts/DependencyStorageMock.sol",
        "file": "mock-dependency/contracts/DependencyStorageMock.sol",
        "id": 2303,
        "nodeType": "ImportDirective",
        "scope": 2364,
        "sourceUnit": 3038,
        "src": "55:61:17",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2310,
        "linearizedBaseContracts": [
          2310
        ],
        "name": "StorageMockWithReferences",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2305,
            "name": "my_enum",
            "nodeType": "VariableDeclaration",
            "scope": 2310,
            "src": "157:44:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_MyEnum_$2253",
              "typeString": "enum StorageMockWithEnums.MyEnum"
            },
            "typeName": {
              "contractScope": null,
              "id": 2304,
              "name": "StorageMockWithEnums.MyEnum",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2253,
              "src": "157:27:17",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_MyEnum_$2253",
                "typeString": "enum StorageMockWithEnums.MyEnum"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2307,
            "name": "my_struct",
            "nodeType": "VariableDeclaration",
            "scope": 2310,
            "src": "205:50:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$2236_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 2306,
              "name": "StorageMockWithStructs.MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2236,
              "src": "205:31:17",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2309,
            "name": "my_contract",
            "nodeType": "VariableDeclaration",
            "scope": 2310,
            "src": "259:38:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
              "typeString": "contract SimpleStorageMock"
            },
            "typeName": {
              "contractScope": null,
              "id": 2308,
              "name": "SimpleStorageMock",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2115,
              "src": "259:17:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                "typeString": "contract SimpleStorageMock"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2364,
        "src": "118:182:17"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2317,
        "linearizedBaseContracts": [
          2317
        ],
        "name": "StorageMockWithNodeModulesReferences",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2312,
            "name": "my_enum",
            "nodeType": "VariableDeclaration",
            "scope": 2317,
            "src": "352:45:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_MyEnum_$3033",
              "typeString": "enum DependencyStorageMock.MyEnum"
            },
            "typeName": {
              "contractScope": null,
              "id": 2311,
              "name": "DependencyStorageMock.MyEnum",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3033,
              "src": "352:28:17",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_MyEnum_$3033",
                "typeString": "enum DependencyStorageMock.MyEnum"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2314,
            "name": "my_struct",
            "nodeType": "VariableDeclaration",
            "scope": 2317,
            "src": "401:49:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$3036_storage",
              "typeString": "struct DependencyStorageMock.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 2313,
              "name": "DependencyStorageMock.MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3036,
              "src": "401:30:17",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$3036_storage_ptr",
                "typeString": "struct DependencyStorageMock.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2316,
            "name": "my_contract",
            "nodeType": "VariableDeclaration",
            "scope": 2317,
            "src": "454:42:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_DependencyStorageMock_$3037",
              "typeString": "contract DependencyStorageMock"
            },
            "typeName": {
              "contractScope": null,
              "id": 2315,
              "name": "DependencyStorageMock",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3037,
              "src": "454:21:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DependencyStorageMock_$3037",
                "typeString": "contract DependencyStorageMock"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2364,
        "src": "302:197:17"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2320,
        "linearizedBaseContracts": [
          2320
        ],
        "name": "StorageMockChainBase",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2319,
            "name": "base",
            "nodeType": "VariableDeclaration",
            "scope": 2320,
            "src": "535:21:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2318,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "535:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2364,
        "src": "501:58:17"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2321,
              "name": "StorageMockChainBase",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2320,
              "src": "592:20:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockChainBase_$2320",
                "typeString": "contract StorageMockChainBase"
              }
            },
            "id": 2322,
            "nodeType": "InheritanceSpecifier",
            "src": "592:20:17"
          }
        ],
        "contractDependencies": [
          2320
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2327,
        "linearizedBaseContracts": [
          2327,
          2320
        ],
        "name": "StorageMockChainA1",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2324,
            "name": "a1",
            "nodeType": "VariableDeclaration",
            "scope": 2327,
            "src": "617:19:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2323,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "617:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2326,
            "name": "a2",
            "nodeType": "VariableDeclaration",
            "scope": 2327,
            "src": "640:19:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2325,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "640:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2364,
        "src": "561:101:17"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2328,
              "name": "StorageMockChainA1",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2327,
              "src": "695:18:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockChainA1_$2327",
                "typeString": "contract StorageMockChainA1"
              }
            },
            "id": 2329,
            "nodeType": "InheritanceSpecifier",
            "src": "695:18:17"
          }
        ],
        "contractDependencies": [
          2320,
          2327
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2334,
        "linearizedBaseContracts": [
          2334,
          2327,
          2320
        ],
        "name": "StorageMockChainA2",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2331,
            "name": "a3",
            "nodeType": "VariableDeclaration",
            "scope": 2334,
            "src": "718:17:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2330,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "718:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2333,
            "name": "a4",
            "nodeType": "VariableDeclaration",
            "scope": 2334,
            "src": "739:17:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2332,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "739:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          }
        ],
        "scope": 2364,
        "src": "664:95:17"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2335,
              "name": "StorageMockChainBase",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2320,
              "src": "791:20:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockChainBase_$2320",
                "typeString": "contract StorageMockChainBase"
              }
            },
            "id": 2336,
            "nodeType": "InheritanceSpecifier",
            "src": "791:20:17"
          }
        ],
        "contractDependencies": [
          2320
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2341,
        "linearizedBaseContracts": [
          2341,
          2320
        ],
        "name": "StorageMockChainB",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2338,
            "name": "b1",
            "nodeType": "VariableDeclaration",
            "scope": 2341,
            "src": "816:19:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2337,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "816:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2340,
            "name": "b2",
            "nodeType": "VariableDeclaration",
            "scope": 2341,
            "src": "839:19:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2339,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "839:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2364,
        "src": "761:100:17"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2342,
              "name": "StorageMockChainA2",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2334,
              "src": "897:18:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockChainA2_$2334",
                "typeString": "contract StorageMockChainA2"
              }
            },
            "id": 2343,
            "nodeType": "InheritanceSpecifier",
            "src": "897:18:17"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2344,
              "name": "StorageMockChainB",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2341,
              "src": "917:17:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockChainB_$2341",
                "typeString": "contract StorageMockChainB"
              }
            },
            "id": 2345,
            "nodeType": "InheritanceSpecifier",
            "src": "917:17:17"
          }
        ],
        "contractDependencies": [
          2320,
          2327,
          2334,
          2341
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2363,
        "linearizedBaseContracts": [
          2363,
          2341,
          2334,
          2327,
          2320
        ],
        "name": "StorageMockChainChild",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2347,
            "name": "child",
            "nodeType": "VariableDeclaration",
            "scope": 2363,
            "src": "939:22:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2346,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "939:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2361,
              "nodeType": "Block",
              "src": "1088:156:17",
              "statements": [
                {
                  "externalReferences": [
                    {
                      "base_slot": {
                        "declaration": 2319,
                        "isOffset": false,
                        "isSlot": true,
                        "src": "1123:9:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "baseSlot": {
                        "declaration": 2350,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "1111:8:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "a3_slot": {
                        "declaration": 2331,
                        "isOffset": false,
                        "isSlot": true,
                        "src": "1173:7:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "a3Slot": {
                        "declaration": 2354,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "1163:6:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "a1_slot": {
                        "declaration": 2324,
                        "isOffset": false,
                        "isSlot": true,
                        "src": "1149:7:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "a1Slot": {
                        "declaration": 2352,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "1139:6:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "b1_slot": {
                        "declaration": 2338,
                        "isOffset": false,
                        "isSlot": true,
                        "src": "1197:7:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "b1Slot": {
                        "declaration": 2356,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "1187:6:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "child_slot": {
                        "declaration": 2347,
                        "isOffset": false,
                        "isSlot": true,
                        "src": "1224:10:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "childSlot": {
                        "declaration": 2358,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "1211:9:17",
                        "valueSize": 1
                      }
                    }
                  ],
                  "id": 2360,
                  "nodeType": "InlineAssembly",
                  "operations": "{\n    baseSlot := base_slot\n    a1Slot := a1_slot\n    a3Slot := a3_slot\n    b1Slot := b1_slot\n    childSlot := child_slot\n}",
                  "src": "1094:150:17"
                }
              ]
            },
            "documentation": null,
            "id": 2362,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "slots",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2348,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "980:2:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 2359,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2350,
                  "name": "baseSlot",
                  "nodeType": "VariableDeclaration",
                  "scope": 2362,
                  "src": "1003:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2349,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1003:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2352,
                  "name": "a1Slot",
                  "nodeType": "VariableDeclaration",
                  "scope": 2362,
                  "src": "1021:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2351,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1021:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2354,
                  "name": "a3Slot",
                  "nodeType": "VariableDeclaration",
                  "scope": 2362,
                  "src": "1037:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2353,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1037:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2356,
                  "name": "b1Slot",
                  "nodeType": "VariableDeclaration",
                  "scope": 2362,
                  "src": "1053:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2355,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1053:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2358,
                  "name": "childSlot",
                  "nodeType": "VariableDeclaration",
                  "scope": 2362,
                  "src": "1069:17:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2357,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1069:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1002:85:17"
            },
            "scope": 2363,
            "src": "966:278:17",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 2364,
        "src": "863:383:17"
      }
    ],
    "src": "0:1246:17"
  },
  "legacyAST": {
    "absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/StorageMocks2.sol",
    "exportedSymbols": {
      "StorageMockChainA1": [
        2327
      ],
      "StorageMockChainA2": [
        2334
      ],
      "StorageMockChainB": [
        2341
      ],
      "StorageMockChainBase": [
        2320
      ],
      "StorageMockChainChild": [
        2363
      ],
      "StorageMockWithNodeModulesReferences": [
        2317
      ],
      "StorageMockWithReferences": [
        2310
      ]
    },
    "id": 2364,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2301,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:17"
      },
      {
        "absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/StorageMocks.sol",
        "file": "./StorageMocks.sol",
        "id": 2302,
        "nodeType": "ImportDirective",
        "scope": 2364,
        "sourceUnit": 2300,
        "src": "26:28:17",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "mock-dependency/contracts/DependencyStorageMock.sol",
        "file": "mock-dependency/contracts/DependencyStorageMock.sol",
        "id": 2303,
        "nodeType": "ImportDirective",
        "scope": 2364,
        "sourceUnit": 3038,
        "src": "55:61:17",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2310,
        "linearizedBaseContracts": [
          2310
        ],
        "name": "StorageMockWithReferences",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2305,
            "name": "my_enum",
            "nodeType": "VariableDeclaration",
            "scope": 2310,
            "src": "157:44:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_MyEnum_$2253",
              "typeString": "enum StorageMockWithEnums.MyEnum"
            },
            "typeName": {
              "contractScope": null,
              "id": 2304,
              "name": "StorageMockWithEnums.MyEnum",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2253,
              "src": "157:27:17",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_MyEnum_$2253",
                "typeString": "enum StorageMockWithEnums.MyEnum"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2307,
            "name": "my_struct",
            "nodeType": "VariableDeclaration",
            "scope": 2310,
            "src": "205:50:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$2236_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 2306,
              "name": "StorageMockWithStructs.MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2236,
              "src": "205:31:17",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2309,
            "name": "my_contract",
            "nodeType": "VariableDeclaration",
            "scope": 2310,
            "src": "259:38:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
              "typeString": "contract SimpleStorageMock"
            },
            "typeName": {
              "contractScope": null,
              "id": 2308,
              "name": "SimpleStorageMock",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2115,
              "src": "259:17:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                "typeString": "contract SimpleStorageMock"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2364,
        "src": "118:182:17"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2317,
        "linearizedBaseContracts": [
          2317
        ],
        "name": "StorageMockWithNodeModulesReferences",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2312,
            "name": "my_enum",
            "nodeType": "VariableDeclaration",
            "scope": 2317,
            "src": "352:45:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_MyEnum_$3033",
              "typeString": "enum DependencyStorageMock.MyEnum"
            },
            "typeName": {
              "contractScope": null,
              "id": 2311,
              "name": "DependencyStorageMock.MyEnum",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3033,
              "src": "352:28:17",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_MyEnum_$3033",
                "typeString": "enum DependencyStorageMock.MyEnum"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2314,
            "name": "my_struct",
            "nodeType": "VariableDeclaration",
            "scope": 2317,
            "src": "401:49:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$3036_storage",
              "typeString": "struct DependencyStorageMock.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 2313,
              "name": "DependencyStorageMock.MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3036,
              "src": "401:30:17",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$3036_storage_ptr",
                "typeString": "struct DependencyStorageMock.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2316,
            "name": "my_contract",
            "nodeType": "VariableDeclaration",
            "scope": 2317,
            "src": "454:42:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_DependencyStorageMock_$3037",
              "typeString": "contract DependencyStorageMock"
            },
            "typeName": {
              "contractScope": null,
              "id": 2315,
              "name": "DependencyStorageMock",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3037,
              "src": "454:21:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DependencyStorageMock_$3037",
                "typeString": "contract DependencyStorageMock"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2364,
        "src": "302:197:17"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2320,
        "linearizedBaseContracts": [
          2320
        ],
        "name": "StorageMockChainBase",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2319,
            "name": "base",
            "nodeType": "VariableDeclaration",
            "scope": 2320,
            "src": "535:21:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2318,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "535:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2364,
        "src": "501:58:17"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2321,
              "name": "StorageMockChainBase",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2320,
              "src": "592:20:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockChainBase_$2320",
                "typeString": "contract StorageMockChainBase"
              }
            },
            "id": 2322,
            "nodeType": "InheritanceSpecifier",
            "src": "592:20:17"
          }
        ],
        "contractDependencies": [
          2320
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2327,
        "linearizedBaseContracts": [
          2327,
          2320
        ],
        "name": "StorageMockChainA1",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2324,
            "name": "a1",
            "nodeType": "VariableDeclaration",
            "scope": 2327,
            "src": "617:19:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2323,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "617:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2326,
            "name": "a2",
            "nodeType": "VariableDeclaration",
            "scope": 2327,
            "src": "640:19:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2325,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "640:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2364,
        "src": "561:101:17"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2328,
              "name": "StorageMockChainA1",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2327,
              "src": "695:18:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockChainA1_$2327",
                "typeString": "contract StorageMockChainA1"
              }
            },
            "id": 2329,
            "nodeType": "InheritanceSpecifier",
            "src": "695:18:17"
          }
        ],
        "contractDependencies": [
          2320,
          2327
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2334,
        "linearizedBaseContracts": [
          2334,
          2327,
          2320
        ],
        "name": "StorageMockChainA2",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2331,
            "name": "a3",
            "nodeType": "VariableDeclaration",
            "scope": 2334,
            "src": "718:17:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2330,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "718:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2333,
            "name": "a4",
            "nodeType": "VariableDeclaration",
            "scope": 2334,
            "src": "739:17:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2332,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "739:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          }
        ],
        "scope": 2364,
        "src": "664:95:17"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2335,
              "name": "StorageMockChainBase",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2320,
              "src": "791:20:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockChainBase_$2320",
                "typeString": "contract StorageMockChainBase"
              }
            },
            "id": 2336,
            "nodeType": "InheritanceSpecifier",
            "src": "791:20:17"
          }
        ],
        "contractDependencies": [
          2320
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2341,
        "linearizedBaseContracts": [
          2341,
          2320
        ],
        "name": "StorageMockChainB",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2338,
            "name": "b1",
            "nodeType": "VariableDeclaration",
            "scope": 2341,
            "src": "816:19:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2337,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "816:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2340,
            "name": "b2",
            "nodeType": "VariableDeclaration",
            "scope": 2341,
            "src": "839:19:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2339,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "839:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2364,
        "src": "761:100:17"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2342,
              "name": "StorageMockChainA2",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2334,
              "src": "897:18:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockChainA2_$2334",
                "typeString": "contract StorageMockChainA2"
              }
            },
            "id": 2343,
            "nodeType": "InheritanceSpecifier",
            "src": "897:18:17"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2344,
              "name": "StorageMockChainB",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2341,
              "src": "917:17:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockChainB_$2341",
                "typeString": "contract StorageMockChainB"
              }
            },
            "id": 2345,
            "nodeType": "InheritanceSpecifier",
            "src": "917:17:17"
          }
        ],
        "contractDependencies": [
          2320,
          2327,
          2334,
          2341
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2363,
        "linearizedBaseContracts": [
          2363,
          2341,
          2334,
          2327,
          2320
        ],
        "name": "StorageMockChainChild",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2347,
            "name": "child",
            "nodeType": "VariableDeclaration",
            "scope": 2363,
            "src": "939:22:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2346,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "939:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2361,
              "nodeType": "Block",
              "src": "1088:156:17",
              "statements": [
                {
                  "externalReferences": [
                    {
                      "base_slot": {
                        "declaration": 2319,
                        "isOffset": false,
                        "isSlot": true,
                        "src": "1123:9:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "baseSlot": {
                        "declaration": 2350,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "1111:8:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "a3_slot": {
                        "declaration": 2331,
                        "isOffset": false,
                        "isSlot": true,
                        "src": "1173:7:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "a3Slot": {
                        "declaration": 2354,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "1163:6:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "a1_slot": {
                        "declaration": 2324,
                        "isOffset": false,
                        "isSlot": true,
                        "src": "1149:7:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "a1Slot": {
                        "declaration": 2352,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "1139:6:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "b1_slot": {
                        "declaration": 2338,
                        "isOffset": false,
                        "isSlot": true,
                        "src": "1197:7:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "b1Slot": {
                        "declaration": 2356,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "1187:6:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "child_slot": {
                        "declaration": 2347,
                        "isOffset": false,
                        "isSlot": true,
                        "src": "1224:10:17",
                        "valueSize": 1
                      }
                    },
                    {
                      "childSlot": {
                        "declaration": 2358,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "1211:9:17",
                        "valueSize": 1
                      }
                    }
                  ],
                  "id": 2360,
                  "nodeType": "InlineAssembly",
                  "operations": "{\n    baseSlot := base_slot\n    a1Slot := a1_slot\n    a3Slot := a3_slot\n    b1Slot := b1_slot\n    childSlot := child_slot\n}",
                  "src": "1094:150:17"
                }
              ]
            },
            "documentation": null,
            "id": 2362,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "slots",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2348,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "980:2:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 2359,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2350,
                  "name": "baseSlot",
                  "nodeType": "VariableDeclaration",
                  "scope": 2362,
                  "src": "1003:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2349,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1003:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2352,
                  "name": "a1Slot",
                  "nodeType": "VariableDeclaration",
                  "scope": 2362,
                  "src": "1021:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2351,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1021:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2354,
                  "name": "a3Slot",
                  "nodeType": "VariableDeclaration",
                  "scope": 2362,
                  "src": "1037:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2353,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1037:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2356,
                  "name": "b1Slot",
                  "nodeType": "VariableDeclaration",
                  "scope": 2362,
                  "src": "1053:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2355,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1053:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2358,
                  "name": "childSlot",
                  "nodeType": "VariableDeclaration",
                  "scope": 2362,
                  "src": "1069:17:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2357,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1069:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1002:85:17"
            },
            "scope": 2363,
            "src": "966:278:17",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 2364,
        "src": "863:383:17"
      }
    ],
    "src": "0:1246:17"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2019-02-15T10:15:15.401Z"
}