{
  "fileName": "DummyImplementation.sol",
  "contractName": "DummyImplementationV2",
  "source": "pragma solidity ^0.6.0;\n// SPDX-License-Identifier: MIT\n\nabstract contract Impl {\n  function version() public pure virtual returns (string memory);\n}\n\ncontract DummyImplementation {\n  uint256 public value;\n  string public text;\n  uint256[] public values;\n\n  function initializeNonPayable() public {\n    value = 10;\n  }\n\n  function initializePayable() payable public {\n    value = 100;\n  }\n\n  function initializeNonPayable(uint256 _value) public {\n    value = _value;\n  }\n\n  function initializePayable(uint256 _value) payable public {\n    value = _value;\n  }\n\n  function initialize(uint256 _value, string memory _text, uint256[] memory _values) public {\n    value = _value;\n    text = _text;\n    values = _values;\n  }\n\n  function get() public pure returns (bool) {\n    return true;\n  }\n\n  function version() public pure virtual returns (string memory) {\n    return \"V1\";\n  }\n\n  function reverts() public pure {\n    require(false);\n  }\n}\n\ncontract DummyImplementationV2 is DummyImplementation {\n  function migrate(uint256 newVal) payable public {\n    value = newVal;\n  }\n\n  function version() public override(DummyImplementation) pure returns (string memory) {\n    return \"V2\";\n  }\n}\n",
  "sourcePath": "contracts/mocks/DummyImplementation.sol",
  "sourceMap": "937:244:9:-:0;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "937:244:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;474:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;208:18;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:60;;;;;;;;;;;;;:::i;:::-;;877:56;;;;;;;;;;;;;:::i;:::-;;184:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;995:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1072:107;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;392:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;230:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;720:64;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;322:66;;;:::i;:::-;;561:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;474:83;546:6;538:5;;:14;;;;;;;474:83;;:::o;208:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;258:60::-;311:2;303:5;;:10;;;;;;;258:60;:::o;877:56::-;922:5;914:14;;;;;;;;877:56;:::o;184:20::-;;;;;;:::o;995:73::-;1057:6;1049:5;;:14;;;;;;;995:73;;:::o;1072:107::-;1142:13;1163:11;;;;;;;;;;;;;;;;;;;;;;;1072:107;;:::o;392:78::-;459:6;451:5;;:14;;;;;;;392:78;;:::o;230:23::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;720:64::-;756:4;775;768:11;;;;720:64;;:::o;322:66::-;380:3;372:5;;:11;;;;;;;322:66;:::o;561:155::-;665:6;657:5;;:14;;;;;;;684:5;677:4;;:12;;;;;;;;;;;;;:::i;:::-;;704:7;695:6;;:16;;;;;;;;;;;;;:::i;:::-;;561:155;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "abi": [
    {
      "inputs": [],
      "name": "get",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "_text",
          "type": "string"
        },
        {
          "internalType": "uint256[]",
          "name": "_values",
          "type": "uint256[]"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initializeNonPayable",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "initializeNonPayable",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "initializePayable",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initializePayable",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newVal",
          "type": "uint256"
        }
      ],
      "name": "migrate",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "reverts",
      "outputs": [],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "text",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "value",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "values",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "ast": {
    "absolutePath": "contracts/mocks/DummyImplementation.sol",
    "exportedSymbols": {
      "DummyImplementation": [
        1629
      ],
      "DummyImplementationV2": [
        1652
      ],
      "Impl": [
        1538
      ]
    },
    "id": 1653,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1532,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:9"
      },
      {
        "abstract": true,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": false,
        "id": 1538,
        "linearizedBaseContracts": [
          1538
        ],
        "name": "Impl",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "functionSelector": "54fd4d50",
            "id": 1537,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "version",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1533,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "100:2:9"
            },
            "returnParameters": {
              "id": 1536,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1535,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1537,
                  "src": "132:13:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1534,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "132:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "131:15:9"
            },
            "scope": 1538,
            "src": "84:63:9",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "public"
          }
        ],
        "scope": 1653,
        "src": "57:92:9"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1629,
        "linearizedBaseContracts": [
          1629
        ],
        "name": "DummyImplementation",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "functionSelector": "3fa4f245",
            "id": 1540,
            "mutability": "mutable",
            "name": "value",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1629,
            "src": "184:20:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1539,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "184:7:9",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "1f1bd692",
            "id": 1542,
            "mutability": "mutable",
            "name": "text",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1629,
            "src": "208:18:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 1541,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "208:6:9",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "5e383d21",
            "id": 1545,
            "mutability": "mutable",
            "name": "values",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1629,
            "src": "230:23:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
              "typeString": "uint256[]"
            },
            "typeName": {
              "baseType": {
                "id": 1543,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "230:7:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 1544,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "230:9:9",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1552,
              "nodeType": "Block",
              "src": "297:21:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1548,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1540,
                      "src": "303:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "3130",
                      "id": 1549,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "311:2:9",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_10_by_1",
                        "typeString": "int_const 10"
                      },
                      "value": "10"
                    },
                    "src": "303:10:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1551,
                  "nodeType": "ExpressionStatement",
                  "src": "303:10:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "227367d5",
            "id": 1553,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializeNonPayable",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1546,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "287:2:9"
            },
            "returnParameters": {
              "id": 1547,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "297:0:9"
            },
            "scope": 1629,
            "src": "258:60:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1560,
              "nodeType": "Block",
              "src": "366:22:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1556,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1540,
                      "src": "372:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "313030",
                      "id": 1557,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "380:3:9",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_100_by_1",
                        "typeString": "int_const 100"
                      },
                      "value": "100"
                    },
                    "src": "372:11:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1559,
                  "nodeType": "ExpressionStatement",
                  "src": "372:11:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "9fba1f9a",
            "id": 1561,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializePayable",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1554,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "348:2:9"
            },
            "returnParameters": {
              "id": 1555,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "366:0:9"
            },
            "scope": 1629,
            "src": "322:66:9",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1570,
              "nodeType": "Block",
              "src": "445:25:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1568,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1566,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1540,
                      "src": "451:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1567,
                      "name": "_value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1563,
                      "src": "459:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "451:14:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1569,
                  "nodeType": "ExpressionStatement",
                  "src": "451:14:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "5ba8d2ad",
            "id": 1571,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializeNonPayable",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1564,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1563,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1571,
                  "src": "422:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1562,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "422:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "421:16:9"
            },
            "returnParameters": {
              "id": 1565,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "445:0:9"
            },
            "scope": 1629,
            "src": "392:78:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1580,
              "nodeType": "Block",
              "src": "532:25:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1578,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1576,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1540,
                      "src": "538:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1577,
                      "name": "_value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1573,
                      "src": "546:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "538:14:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1579,
                  "nodeType": "ExpressionStatement",
                  "src": "538:14:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "16eaa247",
            "id": 1581,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializePayable",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1574,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1573,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1581,
                  "src": "501:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1572,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "501:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "500:16:9"
            },
            "returnParameters": {
              "id": 1575,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "532:0:9"
            },
            "scope": 1629,
            "src": "474:83:9",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1603,
              "nodeType": "Block",
              "src": "651:65:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1593,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1591,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1540,
                      "src": "657:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1592,
                      "name": "_value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1583,
                      "src": "665:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "657:14:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1594,
                  "nodeType": "ExpressionStatement",
                  "src": "657:14:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1597,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1595,
                      "name": "text",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1542,
                      "src": "677:4:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1596,
                      "name": "_text",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1585,
                      "src": "684:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "677:12:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 1598,
                  "nodeType": "ExpressionStatement",
                  "src": "677:12:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1601,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1599,
                      "name": "values",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1545,
                      "src": "695:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1600,
                      "name": "_values",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1588,
                      "src": "704:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "695:16:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "id": 1602,
                  "nodeType": "ExpressionStatement",
                  "src": "695:16:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "d31f8b6b",
            "id": 1604,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1589,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1583,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1604,
                  "src": "581:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1582,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "581:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1585,
                  "mutability": "mutable",
                  "name": "_text",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1604,
                  "src": "597:19:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1584,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "597:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1588,
                  "mutability": "mutable",
                  "name": "_values",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1604,
                  "src": "618:24:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1586,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "618:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1587,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "618:9:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "580:63:9"
            },
            "returnParameters": {
              "id": 1590,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "651:0:9"
            },
            "scope": 1629,
            "src": "561:155:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1611,
              "nodeType": "Block",
              "src": "762:22:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 1609,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "775:4:9",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1608,
                  "id": 1610,
                  "nodeType": "Return",
                  "src": "768:11:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "6d4ce63c",
            "id": 1612,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1605,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "732:2:9"
            },
            "returnParameters": {
              "id": 1608,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1607,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1612,
                  "src": "756:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1606,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "756:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "755:6:9"
            },
            "scope": 1629,
            "src": "720:64:9",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1619,
              "nodeType": "Block",
              "src": "851:22:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "5631",
                    "id": 1617,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "864:4:9",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_4c23426613a5dc69e08fbd2787e6210aa679d4522e95a89d4dd88c4fd13a2283",
                      "typeString": "literal_string \"V1\""
                    },
                    "value": "V1"
                  },
                  "functionReturnParameters": 1616,
                  "id": 1618,
                  "nodeType": "Return",
                  "src": "857:11:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "54fd4d50",
            "id": 1620,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "version",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1613,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "804:2:9"
            },
            "returnParameters": {
              "id": 1616,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1615,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1620,
                  "src": "836:13:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1614,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "836:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "835:15:9"
            },
            "scope": 1629,
            "src": "788:85:9",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1627,
              "nodeType": "Block",
              "src": "908:25:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 1624,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "922:5:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1623,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "914:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1625,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "914:14:9",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1626,
                  "nodeType": "ExpressionStatement",
                  "src": "914:14:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "3bccbbc9",
            "id": 1628,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "reverts",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1621,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "893:2:9"
            },
            "returnParameters": {
              "id": 1622,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "908:0:9"
            },
            "scope": 1629,
            "src": "877:56:9",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 1653,
        "src": "151:784:9"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1630,
              "name": "DummyImplementation",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1629,
              "src": "971:19:9",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DummyImplementation_$1629",
                "typeString": "contract DummyImplementation"
              }
            },
            "id": 1631,
            "nodeType": "InheritanceSpecifier",
            "src": "971:19:9"
          }
        ],
        "contractDependencies": [
          1629
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1652,
        "linearizedBaseContracts": [
          1652,
          1629
        ],
        "name": "DummyImplementationV2",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 1640,
              "nodeType": "Block",
              "src": "1043:25:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1638,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1636,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1540,
                      "src": "1049:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1637,
                      "name": "newVal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1633,
                      "src": "1057:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1049:14:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1639,
                  "nodeType": "ExpressionStatement",
                  "src": "1049:14:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "454b0608",
            "id": 1641,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "migrate",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1634,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1633,
                  "mutability": "mutable",
                  "name": "newVal",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1641,
                  "src": "1012:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1632,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1012:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1011:16:9"
            },
            "returnParameters": {
              "id": 1635,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1043:0:9"
            },
            "scope": 1652,
            "src": "995:73:9",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1620
            ],
            "body": {
              "id": 1650,
              "nodeType": "Block",
              "src": "1157:22:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "5632",
                    "id": 1648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1170:4:9",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_23d235efaf569b2b407d10f447247743508d1762a8e3a3aed85ccc0570dde35f",
                      "typeString": "literal_string \"V2\""
                    },
                    "value": "V2"
                  },
                  "functionReturnParameters": 1647,
                  "id": 1649,
                  "nodeType": "Return",
                  "src": "1163:11:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "54fd4d50",
            "id": 1651,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "version",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 1644,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "contractScope": null,
                  "id": 1643,
                  "name": "DummyImplementation",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1629,
                  "src": "1107:19:9",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DummyImplementation_$1629",
                    "typeString": "contract DummyImplementation"
                  }
                }
              ],
              "src": "1098:29:9"
            },
            "parameters": {
              "id": 1642,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1088:2:9"
            },
            "returnParameters": {
              "id": 1647,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1646,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1651,
                  "src": "1142:13:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1645,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1142:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1141:15:9"
            },
            "scope": 1652,
            "src": "1072:107:9",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 1653,
        "src": "937:244:9"
      }
    ],
    "src": "0:1182:9"
  },
  "bytecode": "0x60806040523480156100115760006000fd5b50610017565b6107d1806100266000396000f3fe6080604052600436106100ab5760003560e01c806354fd4d501161006457806354fd4d50146101fd5780635ba8d2ad1461028f5780635e383d21146102cc5780636d4ce63c1461031d5780639fba1f9a1461034d578063d31f8b6b14610357576100ab565b806316eaa247146100b15780631f1bd692146100e0578063227367d5146101725780633bccbbc91461018a5780633fa4f245146101a2578063454b0608146101ce576100ab565b60006000fd5b6100de600480360360208110156100c85760006000fd5b81019080803590602001909291905050506104cd565b005b3480156100ed5760006000fd5b506100f66104dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101375780820151818401525b60208101905061011b565b50505050905090810190601f1680156101645780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017f5760006000fd5b5061018861057e565b005b3480156101975760006000fd5b506101a061058e565b005b3480156101af5760006000fd5b506101b861059f565b6040518082815260200191505060405180910390f35b6101fb600480360360208110156101e55760006000fd5b81019080803590602001909291905050506105a8565b005b34801561020a5760006000fd5b506102136105b8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102545780820151818401525b602081019050610238565b50505050905090810190601f1680156102815780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029c5760006000fd5b506102ca600480360360208110156102b45760006000fd5b81019080803590602001909291905050506105fd565b005b3480156102d95760006000fd5b50610307600480360360208110156102f15760006000fd5b810190808035906020019092919050505061060d565b6040518082815260200191505060405180910390f35b34801561032a5760006000fd5b50610333610635565b604051808215151515815260200191505060405180910390f35b610355610643565b005b3480156103645760006000fd5b506104cb6004803603606081101561037c5760006000fd5b8101908080359060200190929190803590602001906401000000008111156103a45760006000fd5b8201836020820111156103b75760006000fd5b803590602001918460018302840111640100000000831117156103da5760006000fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050909091929090919290803590602001906401000000008111156104425760006000fd5b8201836020820111156104555760006000fd5b803590602001918460208302840111640100000000831117156104785760006000fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050909091929090919290505050610653565b005b8060006000508190909055505b50565b60016000508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105765780601f1061054b57610100808354040283529160200191610576565b820191906000526020600020905b81548152906001019060200180831161055957829003601f168201915b505050505081565b600a60006000508190909055505b565b6000151561059c5760006000fd5b5b565b60006000505481565b8060006000508190909055505b50565b60606040518060400160405280600281526020017f563200000000000000000000000000000000000000000000000000000000000081526020015090506105fa565b90565b8060006000508190909055505b50565b60026000508181548110151561061f57fe5b906000526020600020900160005b915090505481565b600060019050610640565b90565b606460006000508190909055505b565b8260006000508190909055508160016000509080519060200190610678929190610699565b50806002600050908051906020019061069292919061071e565b505b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106106da57805160ff191683800117855561070d565b8280016001018555821561070d579182015b8281111561070c57825182600050909055916020019190600101906106ec565b5b50905061071a9190610770565b5090565b82805482825590600052602060002090810192821561075f579160200282015b8281111561075e578251826000509090559160200191906001019061073e565b5b50905061076c9190610770565b5090565b610798919061077a565b80821115610794576000818150600090555060010161077a565b5090565b9056fea264697066735822122059ce5a695232b94f7e7e73986b334fa48d24aaf15a42c88f557b6b794ad99a5464736f6c634300060a0033",
  "deployedBytecode": "0x6080604052600436106100ab5760003560e01c806354fd4d501161006457806354fd4d50146101fd5780635ba8d2ad1461028f5780635e383d21146102cc5780636d4ce63c1461031d5780639fba1f9a1461034d578063d31f8b6b14610357576100ab565b806316eaa247146100b15780631f1bd692146100e0578063227367d5146101725780633bccbbc91461018a5780633fa4f245146101a2578063454b0608146101ce576100ab565b60006000fd5b6100de600480360360208110156100c85760006000fd5b81019080803590602001909291905050506104cd565b005b3480156100ed5760006000fd5b506100f66104dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101375780820151818401525b60208101905061011b565b50505050905090810190601f1680156101645780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017f5760006000fd5b5061018861057e565b005b3480156101975760006000fd5b506101a061058e565b005b3480156101af5760006000fd5b506101b861059f565b6040518082815260200191505060405180910390f35b6101fb600480360360208110156101e55760006000fd5b81019080803590602001909291905050506105a8565b005b34801561020a5760006000fd5b506102136105b8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102545780820151818401525b602081019050610238565b50505050905090810190601f1680156102815780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029c5760006000fd5b506102ca600480360360208110156102b45760006000fd5b81019080803590602001909291905050506105fd565b005b3480156102d95760006000fd5b50610307600480360360208110156102f15760006000fd5b810190808035906020019092919050505061060d565b6040518082815260200191505060405180910390f35b34801561032a5760006000fd5b50610333610635565b604051808215151515815260200191505060405180910390f35b610355610643565b005b3480156103645760006000fd5b506104cb6004803603606081101561037c5760006000fd5b8101908080359060200190929190803590602001906401000000008111156103a45760006000fd5b8201836020820111156103b75760006000fd5b803590602001918460018302840111640100000000831117156103da5760006000fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050909091929090919290803590602001906401000000008111156104425760006000fd5b8201836020820111156104555760006000fd5b803590602001918460208302840111640100000000831117156104785760006000fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050909091929090919290505050610653565b005b8060006000508190909055505b50565b60016000508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105765780601f1061054b57610100808354040283529160200191610576565b820191906000526020600020905b81548152906001019060200180831161055957829003601f168201915b505050505081565b600a60006000508190909055505b565b6000151561059c5760006000fd5b5b565b60006000505481565b8060006000508190909055505b50565b60606040518060400160405280600281526020017f563200000000000000000000000000000000000000000000000000000000000081526020015090506105fa565b90565b8060006000508190909055505b50565b60026000508181548110151561061f57fe5b906000526020600020900160005b915090505481565b600060019050610640565b90565b606460006000508190909055505b565b8260006000508190909055508160016000509080519060200190610678929190610699565b50806002600050908051906020019061069292919061071e565b505b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106106da57805160ff191683800117855561070d565b8280016001018555821561070d579182015b8281111561070c57825182600050909055916020019190600101906106ec565b5b50905061071a9190610770565b5090565b82805482825590600052602060002090810192821561075f579160200282015b8281111561075e578251826000509090559160200191906001019061073e565b5b50905061076c9190610770565b5090565b610798919061077a565b80821115610794576000818150600090555060010161077a565b5090565b9056fea264697066735822122059ce5a695232b94f7e7e73986b334fa48d24aaf15a42c88f557b6b794ad99a5464736f6c634300060a0033",
  "compiler": {
    "name": "solc",
    "version": "0.6.10+commit.00c0fcaf.Emscripten.clang",
    "optimizer": {},
    "evmVersion": "constantinople"
  }
}
