{
    "abi": [
        {
            "constant": true,
            "inputs": [],
            "name": "hasInitialized",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "bytes32"
                },
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "name": "apps",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "token",
                    "type": "address"
                }
            ],
            "name": "allowRecoverability",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "recoveryVaultAppId",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "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": "APP_MANAGER_ROLE",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_token",
                    "type": "address"
                }
            ],
            "name": "transferToVault",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_kernel",
                    "type": "address"
                },
                {
                    "name": "_appId",
                    "type": "bytes32"
                },
                {
                    "name": "_initializePayload",
                    "type": "bytes"
                }
            ],
            "name": "newAppProxyPinned",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "isPetrified",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_kernel",
                    "type": "address"
                },
                {
                    "name": "_appId",
                    "type": "bytes32"
                }
            ],
            "name": "newAppProxy",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_kernel",
                    "type": "address"
                },
                {
                    "name": "_appId",
                    "type": "bytes32"
                },
                {
                    "name": "_initializePayload",
                    "type": "bytes"
                }
            ],
            "name": "newAppProxy",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_kernel",
                    "type": "address"
                },
                {
                    "name": "_appId",
                    "type": "bytes32"
                }
            ],
            "name": "newAppProxyPinned",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "name": "_shouldPetrify",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "constructor"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "proxy",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "isUpgradeable",
                    "type": "bool"
                },
                {
                    "indexed": false,
                    "name": "appId",
                    "type": "bytes32"
                }
            ],
            "name": "NewAppProxy",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "vault",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "name": "token",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "RecoverToVault",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "namespace",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "name": "appId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "name": "app",
                    "type": "address"
                }
            ],
            "name": "SetApp",
            "type": "event"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_baseAcl",
                    "type": "address"
                },
                {
                    "name": "_permissionsCreator",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_appId",
                    "type": "bytes32"
                },
                {
                    "name": "_appBase",
                    "type": "address"
                },
                {
                    "name": "_initializePayload",
                    "type": "bytes"
                },
                {
                    "name": "_setDefault",
                    "type": "bool"
                }
            ],
            "name": "newAppInstance",
            "outputs": [
                {
                    "name": "appProxy",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_appId",
                    "type": "bytes32"
                },
                {
                    "name": "_appBase",
                    "type": "address"
                }
            ],
            "name": "newAppInstance",
            "outputs": [
                {
                    "name": "appProxy",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_appId",
                    "type": "bytes32"
                },
                {
                    "name": "_appBase",
                    "type": "address"
                }
            ],
            "name": "newPinnedAppInstance",
            "outputs": [
                {
                    "name": "appProxy",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_appId",
                    "type": "bytes32"
                },
                {
                    "name": "_appBase",
                    "type": "address"
                },
                {
                    "name": "_initializePayload",
                    "type": "bytes"
                },
                {
                    "name": "_setDefault",
                    "type": "bool"
                }
            ],
            "name": "newPinnedAppInstance",
            "outputs": [
                {
                    "name": "appProxy",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_namespace",
                    "type": "bytes32"
                },
                {
                    "name": "_appId",
                    "type": "bytes32"
                },
                {
                    "name": "_app",
                    "type": "address"
                }
            ],
            "name": "setApp",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_recoveryVaultAppId",
                    "type": "bytes32"
                }
            ],
            "name": "setRecoveryVaultAppId",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "CORE_NAMESPACE",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "pure",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "APP_BASES_NAMESPACE",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "pure",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "APP_ADDR_NAMESPACE",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "pure",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "KERNEL_APP_ID",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "pure",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "DEFAULT_ACL_APP_ID",
            "outputs": [
                {
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "payable": false,
            "stateMutability": "pure",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_namespace",
                    "type": "bytes32"
                },
                {
                    "name": "_appId",
                    "type": "bytes32"
                }
            ],
            "name": "getApp",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getRecoveryVault",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "acl",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "_who",
                    "type": "address"
                },
                {
                    "name": "_where",
                    "type": "address"
                },
                {
                    "name": "_what",
                    "type": "bytes32"
                },
                {
                    "name": "_how",
                    "type": "bytes"
                }
            ],
            "name": "hasPermission",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function"
        }
    ]
}
