{
  "contractName": "Controlled",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract Controller",
          "name": "_controller",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "ModuleCached",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_ids",
          "type": "bytes32[]"
        },
        {
          "internalType": "address[]",
          "name": "_addresses",
          "type": "address[]"
        }
      ],
      "name": "cacheModules",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getController",
      "outputs": [
        {
          "internalType": "contract Controller",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506040516104f33803806104f38339818101604052602081101561003357600080fd5b5051610047816001600160e01b0361012c16565b6040518060400160405280601b81526020017f4354445f434f4e54524f4c4c45525f4e4f545f434f4e54524143540000000000815250906101065760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156100cb5781810151838201526020016100b3565b50505050905090810190601f1680156100f85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600080546001600160a01b0319166001600160a01b039290921691909117905561014f565b60006001600160a01b0382166101445750600061014a565b50803b15155b919050565b6103958061015e6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80633018205f1461003b5780634e112d361461005f575b600080fd5b61004361011f565b604080516001600160a01b039092168252519081900360200190f35b61011d6004803603604081101561007557600080fd5b810190602081018135600160201b81111561008f57600080fd5b8201836020820111156100a157600080fd5b803590602001918460208302840111600160201b831117156100c257600080fd5b919390929091602081019035600160201b8111156100df57600080fd5b8201836020820111156100f157600080fd5b803590602001918460208302840111600160201b8311171561011257600080fd5b50909250905061012e565b005b6000546001600160a01b031690565b60005460408051808201909152601981527821aa222fa9a2a72222a92fa727aa2fa1a7a72a2927a62622a960391b6020820152906001600160a01b031633146101f55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060408051808201909152601f81527f4354445f494e56414c49445f4d4f44554c45535f43414348455f494e5055540060208201528382146102785760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156101ba5781810151838201526020016101a2565b5060005b838110156103595782828281811061029057fe5b905060200201356001600160a01b0316600160008787858181106102b057fe5b90506020020135815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f60bd2091d76fc7f3330a4d5e9fd21180cf5de4b91e9972d2d56f41896c036a4085858381811061031657fe5b9050602002013584848481811061032957fe5b60408051948552602091820293909301356001600160a01b031690840152508051918290030190a160010161027c565b505050505056fea265627a7a723158201da052e2a2eb7edbb11b18fb2e6e7860839aa45329b537c7928cbe3bf747f11c64736f6c63430005110032",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80633018205f1461003b5780634e112d361461005f575b600080fd5b61004361011f565b604080516001600160a01b039092168252519081900360200190f35b61011d6004803603604081101561007557600080fd5b810190602081018135600160201b81111561008f57600080fd5b8201836020820111156100a157600080fd5b803590602001918460208302840111600160201b831117156100c257600080fd5b919390929091602081019035600160201b8111156100df57600080fd5b8201836020820111156100f157600080fd5b803590602001918460208302840111600160201b8311171561011257600080fd5b50909250905061012e565b005b6000546001600160a01b031690565b60005460408051808201909152601981527821aa222fa9a2a72222a92fa727aa2fa1a7a72a2927a62622a960391b6020820152906001600160a01b031633146101f55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060408051808201909152601f81527f4354445f494e56414c49445f4d4f44554c45535f43414348455f494e5055540060208201528382146102785760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156101ba5781810151838201526020016101a2565b5060005b838110156103595782828281811061029057fe5b905060200201356001600160a01b0316600160008787858181106102b057fe5b90506020020135815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f60bd2091d76fc7f3330a4d5e9fd21180cf5de4b91e9972d2d56f41896c036a4085858381811061031657fe5b9050602002013584848481811061032957fe5b60408051948552602091820293909301356001600160a01b031690840152508051918290030190a160010161027c565b505050505056fea265627a7a723158201da052e2a2eb7edbb11b18fb2e6e7860839aa45329b537c7928cbe3bf747f11c64736f6c63430005110032",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
