{
  "contractName": "Autopetrified",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "hasInitialized",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getInitializationBlock",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isPetrified",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.4.24+commit.e67f0147\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"hasInitialized\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getInitializationBlock\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isPetrified\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{\"getInitializationBlock()\":{\"return\":\"Block number in which the contract was initialized\"},\"hasInitialized()\":{\"return\":\"Whether the contract has been initialized by the time of the current block\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@aragon/os/contracts/common/Autopetrified.sol\":\"Autopetrified\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@aragon/os/contracts/common/Autopetrified.sol\":{\"keccak256\":\"0x216e6ecbdcf45d90e8846ab2773072bd82180558a7dcf0c5425ed13b0188c5f3\",\"urls\":[\"bzzr://95b7ec6b2e8d3d8cd8c02f9be8b17d715c48a35445ba194429cca5264bfd0435\"]},\"@aragon/os/contracts/common/Initializable.sol\":{\"keccak256\":\"0xc559fdbee1c0ee18b6f2f866c28ed6eb96859b2c88f75867ca11f25ebd00b090\",\"urls\":[\"bzzr://3d3bca8b35030fc12f94bb52a162be9520868b27ff2cb32f09179d67b6ffdf93\"]},\"@aragon/os/contracts/common/Petrifiable.sol\":{\"keccak256\":\"0xb69f9d6de8ff6f2a084aca2e0228c9008a8776482a70bcab16f46a693ec77be6\",\"urls\":[\"bzzr://ca1d7bb504b8d9d75c162f5edc8588ac86934b69f765f2010d603027dc534375\"]},\"@aragon/os/contracts/common/TimeHelpers.sol\":{\"keccak256\":\"0x95b785dc4319f6ce5255c9adf5e68a469a0f837f7b02e01b6bc974b4921d4024\",\"urls\":[\"bzzr://53f41920d95ed5cb7326de3062063c9296076809377fbadf2cbd26ab0c84ffd1\"]},\"@aragon/os/contracts/common/Uint256Helpers.sol\":{\"keccak256\":\"0x83033025a3f4402be3b7bcc9a23ce96ae4fadc7f251da8f139d73a13a3400b0c\",\"urls\":[\"bzzr://bd0e059eff36a66c3a28298ed5a2e1b058ce93057866ab36063e9f3095cef36f\"]},\"@aragon/os/contracts/common/UnstructuredStorage.sol\":{\"keccak256\":\"0xe0d627fc7a7716409389f34cfe49366ba7871309d3a73262ec9608ef73e47591\",\"urls\":[\"bzzr://9742204494402cdecc66b266f0e420fcfe2677ba710db7651c40f96a63940bef\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b50610022640100000000610027810204565b610230565b610038640100000000610127810204565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a4544000000000000000060208201529015610110576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156100d55781810151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610125600019640100000000610152810204565b565b600061014d6000805160206103c183398151915264010000000061014e61022882021704565b905090565b610163640100000000610127810204565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a45440000000000000000602082015290156101ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156100d55781810151838201526020016100bd565b506102256000805160206103c18339815191528264010000000061015261022c82021704565b50565b5490565b9055565b6101828061023f6000396000f3006080604052600436106100565763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630803fac0811461005b5780638b3dd74914610084578063de4796ed146100ab575b600080fd5b34801561006757600080fd5b506100706100c0565b604080519115158252519081900360200190f35b34801561009057600080fd5b506100996100e9565b60408051918252519081900360200190f35b3480156100b757600080fd5b50610070610119565b6000806100cb6100e9565b905080158015906100e35750806100e061014a565b10155b91505090565b60006101147febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e61014e565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101446100e9565b14905090565b4390565b5490565b90555600a165627a7a72305820286f0a3cb457a32c71f1c7eca77090a628f0ba24b7897205c855c3fa473eb8bb0029ebb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e",
  "deployedBytecode": "0x6080604052600436106100565763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630803fac0811461005b5780638b3dd74914610084578063de4796ed146100ab575b600080fd5b34801561006757600080fd5b506100706100c0565b604080519115158252519081900360200190f35b34801561009057600080fd5b506100996100e9565b60408051918252519081900360200190f35b3480156100b757600080fd5b50610070610119565b6000806100cb6100e9565b905080158015906100e35750806100e061014a565b10155b91505090565b60006101147febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e61014e565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101446100e9565b14905090565b4390565b5490565b90555600a165627a7a72305820286f0a3cb457a32c71f1c7eca77090a628f0ba24b7897205c855c3fa473eb8bb0029",
  "sourceMap": "100:262:22:-;;;144:216;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;344:9:22;:7;;;;:9;:::i;:::-;100:262;;590:84:32;615:24:30;:22;;;;:24;:::i;:::-;646:25;;;;;;;;;;;;;;;;;;615:29;607:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;607:65:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;637:30:32;-1:-1:-1;;637:13:32;;;;:30;:::i;:::-;590:84::o;881:137:30:-;936:7;962:49;-1:-1:-1;;;;;;;;;;;962:47:30;;;;;;:49;:::i;:::-;955:56;;881:137;:::o;1751:141::-;615:24;:22;;;;:24;:::i;:::-;646:25;;;;;;;;;;;;;;;;;;615:29;607:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;607:65:30;-1:-1:-1;1824:61:30;-1:-1:-1;;;;;;;;;;;1872:12:30;1824:47;;;;;;:61;:::i;:::-;1751:141;:::o;519:134:37:-;630:15;;620:27::o;1028:119::-;1117:22;;1115:26::o;100:262:22:-;;;;;;;",
  "deployedSourceMap": "100:262:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1128:208:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1128:208:30;;;;;;;;;;;;;;;;;;;;;;881:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;881:137:30;;;;;;;;;;;;;;;;;;;;287:117:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:117:32;;;;1128:208:30;1175:4;1191:27;1221:24;:22;:24::i;:::-;1191:54;-1:-1:-1;1262:24:30;;;;;:67;;;1310:19;1290:16;:14;:16::i;:::-;:39;;1262:67;1255:74;;1128:208;;:::o;881:137::-;936:7;962:49;345:66;962:47;:49::i;:::-;955:56;;881:137;:::o;287:117:32:-;331:4;277:2;354:24;:22;:24::i;:::-;:43;347:50;;287:117;:::o;347:94:35:-;422:12;347:94;:::o;519:134:37:-;630:15;;620:27::o;1028:119::-;1117:22;;1115:26::o",
  "source": "/*\n * SPDX-License-Identitifer:    MIT\n */\n\npragma solidity ^0.4.24;\n\nimport \"./Petrifiable.sol\";\n\n\ncontract Autopetrified is Petrifiable {\n    constructor() public {\n        // Immediately petrify base (non-proxy) instances of inherited contracts on deploy.\n        // This renders them uninitializable (and unusable without a proxy).\n        petrify();\n    }\n}\n",
  "sourcePath": "@aragon/os/contracts/common/Autopetrified.sol",
  "ast": {
    "absolutePath": "@aragon/os/contracts/common/Autopetrified.sol",
    "exportedSymbols": {
      "Autopetrified": [
        6133
      ]
    },
    "id": 6134,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6122,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "44:24:22"
      },
      {
        "absolutePath": "@aragon/os/contracts/common/Petrifiable.sol",
        "file": "./Petrifiable.sol",
        "id": 6123,
        "nodeType": "ImportDirective",
        "scope": 6134,
        "sourceUnit": 6503,
        "src": "70:27:22",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6124,
              "name": "Petrifiable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6502,
              "src": "126:11:22",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Petrifiable_$6502",
                "typeString": "contract Petrifiable"
              }
            },
            "id": 6125,
            "nodeType": "InheritanceSpecifier",
            "src": "126:11:22"
          }
        ],
        "contractDependencies": [
          6441,
          6502,
          6831
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 6133,
        "linearizedBaseContracts": [
          6133,
          6502,
          6441,
          6831
        ],
        "name": "Autopetrified",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 6131,
              "nodeType": "Block",
              "src": "165:195:22",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6128,
                      "name": "petrify",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6501,
                      "src": "344:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 6129,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "344:9:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6130,
                  "nodeType": "ExpressionStatement",
                  "src": "344:9:22"
                }
              ]
            },
            "documentation": null,
            "id": 6132,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6126,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "155:2:22"
            },
            "payable": false,
            "returnParameters": {
              "id": 6127,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "165:0:22"
            },
            "scope": 6133,
            "src": "144:216:22",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 6134,
        "src": "100:262:22"
      }
    ],
    "src": "44:319:22"
  },
  "legacyAST": {
    "absolutePath": "@aragon/os/contracts/common/Autopetrified.sol",
    "exportedSymbols": {
      "Autopetrified": [
        6133
      ]
    },
    "id": 6134,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6122,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "44:24:22"
      },
      {
        "absolutePath": "@aragon/os/contracts/common/Petrifiable.sol",
        "file": "./Petrifiable.sol",
        "id": 6123,
        "nodeType": "ImportDirective",
        "scope": 6134,
        "sourceUnit": 6503,
        "src": "70:27:22",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6124,
              "name": "Petrifiable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6502,
              "src": "126:11:22",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Petrifiable_$6502",
                "typeString": "contract Petrifiable"
              }
            },
            "id": 6125,
            "nodeType": "InheritanceSpecifier",
            "src": "126:11:22"
          }
        ],
        "contractDependencies": [
          6441,
          6502,
          6831
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 6133,
        "linearizedBaseContracts": [
          6133,
          6502,
          6441,
          6831
        ],
        "name": "Autopetrified",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 6131,
              "nodeType": "Block",
              "src": "165:195:22",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6128,
                      "name": "petrify",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6501,
                      "src": "344:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 6129,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "344:9:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6130,
                  "nodeType": "ExpressionStatement",
                  "src": "344:9:22"
                }
              ]
            },
            "documentation": null,
            "id": 6132,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6126,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "155:2:22"
            },
            "payable": false,
            "returnParameters": {
              "id": 6127,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "165:0:22"
            },
            "scope": 6133,
            "src": "144:216:22",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 6134,
        "src": "100:262:22"
      }
    ],
    "src": "44:319:22"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.2.0",
  "updatedAt": "2020-06-07T23:27:00.568Z",
  "devdoc": {
    "methods": {
      "getInitializationBlock()": {
        "return": "Block number in which the contract was initialized"
      },
      "hasInitialized()": {
        "return": "Whether the contract has been initialized by the time of the current block"
      }
    }
  },
  "userdoc": {
    "methods": {}
  }
}