{
  "contractName": "CallsScript",
  "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"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "src",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "dst",
          "type": "address"
        }
      ],
      "name": "LogScriptCall",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_script",
          "type": "bytes"
        },
        {
          "name": "",
          "type": "bytes"
        },
        {
          "name": "_blacklist",
          "type": "address[]"
        }
      ],
      "name": "execScript",
      "outputs": [
        {
          "name": "",
          "type": "bytes"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "executorType",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405261001b610020640100000000026401000000009004565b6102f2565b6000610039610153640100000000026401000000009004565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515610118576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156100dd5780820151818401526020810190506100c2565b50505050905090810190601f16801561010a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506101517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61019d640100000000026401000000009004565b565b60006101987febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166102e06401000000000261092f176401000000009004565b905090565b60006101b6610153640100000000026401000000009004565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515610295576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561025a57808201518184015260208101905061023f565b50505050905090810190601f1680156102875780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506102dd817febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166102eb6401000000000261094b179091906401000000009004565b50565b600081549050919050565b8082555050565b61097e806103016000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630803fac014610072578063279cea35146100a15780638333d9b2146101855780638b3dd749146101b8578063de4796ed146101e3575b600080fd5b34801561007e57600080fd5b50610087610212565b604051808215151515815260200191505060405180910390f35b3480156100ad57600080fd5b5061010a60048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061023d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014a57808201518184015260208101905061012f565b50505050905090810190601f1680156101775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561019157600080fd5b5061019a6107e0565b60405180826000191660001916815260200191505060405180910390f35b3480156101c457600080fd5b506101cd61080b565b6040518082815260200191505060405180910390f35b3480156101ef57600080fd5b506101f8610842565b604051808215151515815260200191505060405180910390f35b60008061021d61080b565b905060008114158015610237575080610234610873565b10155b91505090565b60606000806000806000806000610252610212565b6040805190810160405280601481526020017f494e49545f4e4f545f494e495449414c495a4544000000000000000000000000815250901515610330576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102f55780820151818401526020810190506102da565b50505050905090810190601f1680156103225780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600496505b8d8d90508710156107cf57610386878f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061087b90919063ffffffff16565b9550600094505b898990508510156104de5789898681811015156103a657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156040805190810160405280601981526020017f45564d43414c4c535f424c41434b4c49535445445f43414c4c000000000000008152509015156104d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561049557808201518184015260208101905061047a565b50505050905090810190601f1680156104c25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50848060010195505061038d565b8573ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610597601488018f8f8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506108c590919063ffffffff16565b63ffffffff1693506004601488010192506105ed838f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061091f90919063ffffffff16565b915083830196508d8d90508711156040805190810160405280601781526020017f45564d43414c4c535f494e56414c49445f4c454e4754480000000000000000008152509015156106d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561069e578082015181840152602081019050610683565b50505050905090810190601f1680156106cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600080858460008a6113885a03f19050806040805190810160405280601681526020017f45564d43414c4c535f43414c4c5f5245564552544544000000000000000000008152509015156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561078e578082015181840152602081019050610773565b50505050905090810190601f1680156107bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610336565b505050505050509695505050505050565b60007f2dc858a00f3e417be1394b87c07158e989ec681ce8cc68a9093680ac1a870302600102905090565b600061083d7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e6001026000191661092f565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61086d61080b565b14905090565b600043905090565b600080610888848461093a565b90506c010000000000000000000000007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082160491505092915050565b6000806108d2848461093a565b90507c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160491505092915050565b6000816020018301905092915050565b600081549050919050565b600081602001830151905092915050565b80825550505600a165627a7a7230582070f719b45c4958e00bbe635c87199e6eb50a1c7e2c6f163906ff4dab4f9d95670029",
  "deployedBytecode": "0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630803fac014610072578063279cea35146100a15780638333d9b2146101855780638b3dd749146101b8578063de4796ed146101e3575b600080fd5b34801561007e57600080fd5b50610087610212565b604051808215151515815260200191505060405180910390f35b3480156100ad57600080fd5b5061010a60048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061023d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014a57808201518184015260208101905061012f565b50505050905090810190601f1680156101775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561019157600080fd5b5061019a6107e0565b60405180826000191660001916815260200191505060405180910390f35b3480156101c457600080fd5b506101cd61080b565b6040518082815260200191505060405180910390f35b3480156101ef57600080fd5b506101f8610842565b604051808215151515815260200191505060405180910390f35b60008061021d61080b565b905060008114158015610237575080610234610873565b10155b91505090565b60606000806000806000806000610252610212565b6040805190810160405280601481526020017f494e49545f4e4f545f494e495449414c495a4544000000000000000000000000815250901515610330576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102f55780820151818401526020810190506102da565b50505050905090810190601f1680156103225780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600496505b8d8d90508710156107cf57610386878f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061087b90919063ffffffff16565b9550600094505b898990508510156104de5789898681811015156103a657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156040805190810160405280601981526020017f45564d43414c4c535f424c41434b4c49535445445f43414c4c000000000000008152509015156104d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561049557808201518184015260208101905061047a565b50505050905090810190601f1680156104c25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50848060010195505061038d565b8573ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610597601488018f8f8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506108c590919063ffffffff16565b63ffffffff1693506004601488010192506105ed838f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061091f90919063ffffffff16565b915083830196508d8d90508711156040805190810160405280601781526020017f45564d43414c4c535f494e56414c49445f4c454e4754480000000000000000008152509015156106d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561069e578082015181840152602081019050610683565b50505050905090810190601f1680156106cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600080858460008a6113885a03f19050806040805190810160405280601681526020017f45564d43414c4c535f43414c4c5f5245564552544544000000000000000000008152509015156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561078e578082015181840152602081019050610773565b50505050905090810190601f1680156107bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610336565b505050505050509695505050505050565b60007f2dc858a00f3e417be1394b87c07158e989ec681ce8cc68a9093680ac1a870302600102905090565b600061083d7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e6001026000191661092f565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61086d61080b565b14905090565b600043905090565b600080610888848461093a565b90506c010000000000000000000000007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082160491505092915050565b6000806108d2848461093a565b90507c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160491505092915050565b6000816020018301905092915050565b600081549050919050565b600081602001830151905092915050565b80825550505600a165627a7a7230582070f719b45c4958e00bbe635c87199e6eb50a1c7e2c6f163906ff4dab4f9d95670029",
  "sourceMap": "153:2472:39:-;;;344:9:19;:7;;;:9;;;:::i;:::-;153:2472:39;;590:84:28;651:1:26;623:24;:22;;;:24;;;:::i;:::-;:29;654:25;;;;;;;;;;;;;;;;;;615:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;615:65:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;637:30:28;277:2;637:13;;;:30;;;:::i;:::-;590:84::o;889:137:26:-;944:7;970:49;353:66;970:29;;:47;;;;;;;;:49;;;:::i;:::-;963:56;;889:137;:::o;1759:141::-;651:1;623:24;:22;;;:24;;;:::i;:::-;:29;654:25;;;;;;;;;;;;;;;;;;615:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;615:65:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1832:61;1880:12;353:66;1832:29;;:47;;;;;;;;;:61;;;;;:::i;:::-;1759:141;:::o;519:134:31:-;587:12;636:8;630:15;622:23;;620:27;;;:::o;1028:119::-;1134:4;1124:8;1117:22;1115:26;;:::o;153:2472:39:-;;;;;;;",
  "deployedSourceMap": "153:2472:39:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:208:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1136:208:26;;;;;;;;;;;;;;;;;;;;;;;;;;;1174:1350:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1174:1350:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1174:1350:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2530:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2530:93:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;889:137:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;889:137:26;;;;;;;;;;;;;;;;;;;;;;;287:117:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:117:28;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:208:26;1183:4;1199:27;1229:24;:22;:24::i;:::-;1199:54;;1293:1;1270:19;:24;;:67;;;;;1318:19;1298:16;:14;:16::i;:::-;:39;;1270:67;1263:74;;1136:208;;:::o;1174:1350:39:-;1270:5;1287:16;1414:23;1545:6;1914:22;1995:19;2053:21;2301:12;745:16:26;:14;:16::i;:::-;763:21;;;;;;;;;;;;;;;;;;737:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;737:48:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;273:1:38;1287:40:39;;1366:1152;1384:7;;:14;;1373:8;:25;1366:1152;;;1440:27;1458:8;1440:7;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;1414:53;;1554:1;1545:10;;1540:143;1561:10;;:17;;1557:1;:21;1540:143;;;1630:10;;1641:1;1630:13;;;;;;;;;;;;;;;;;1611:32;;:15;:32;;;;1645:22;;;;;;;;;;;;;;;;;;1603:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1603:65:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1580:3;;;;;;;1540:143;;;1883:15;1842:57;;1876:4;1842:57;;1856:10;1842:57;;;;;;;;;;;;1947:33;1975:4;1964:8;:15;1947:7;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;1939:42;;1914:67;;2035:4;2028;2017:8;:15;:22;1995:44;;2077:31;2096:11;2077:7;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;2053:55;;2201:14;2187:11;:28;2176:39;;2249:7;;:14;;2237:8;:26;;2265:20;;;;;;;;;;;;;;;;;;2229:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2229:57:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2440:1;2437;2421:14;2406:13;2403:1;2386:15;2379:4;2374:3;2370:14;2365:77;2354:88;;2478:7;2487:19;;;;;;;;;;;;;;;;;;2470:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2470:37:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1366:1152;;;1174:1350;;;;;;;;;;;;;;;:::o;2530:93::-;2577:7;402:66;2603:13;;2596:20;;2530:93;:::o;889:137:26:-;944:7;970:49;353:66;970:29;;:47;;;;:49::i;:::-;963:56;;889:137;:::o;287:117:28:-;331:4;277:2;354:24;:22;:24::i;:::-;:43;347:50;;287:117;:::o;347:94:29:-;396:7;422:12;415:19;;347:94;:::o;408:325:37:-;482:14;508:12;523:27;533:5;540:9;523;:27::i;:::-;508:42;;689:27;608:66;602:4;598:77;594:123;584:133;;570:157;;;;;:::o;739:355::-;812:13;837:12;852:27;862:5;869:9;852;:27::i;:::-;837:42;;1018:59;937:66;931:4;927:77;923:155;913:165;;899:189;;;;;:::o;1100:182::-;1175:14;1255:9;1249:4;1245:20;1238:5;1234:32;1224:42;;1210:66;;;;:::o;519:134:31:-;587:12;636:8;630:15;622:23;;620:27;;;:::o;214:188:37:-;288:14;374:9;368:4;364:20;357:5;353:32;347:39;337:49;;323:73;;;;:::o;1028:119:31:-;1134:4;1124:8;1117:22;1115:26;;:::o",
  "source": "pragma solidity 0.4.24;\n\n// Inspired by https://github.com/reverendus/tx-manager\n\nimport \"../ScriptHelpers.sol\";\nimport \"./BaseEVMScriptExecutor.sol\";\n\n\ncontract CallsScript is BaseEVMScriptExecutor {\n    using ScriptHelpers for bytes;\n\n    /* Hardcoded constants to save gas\n    bytes32 internal constant EXECUTOR_TYPE = keccak256(\"CALLS_SCRIPT\");\n    */\n    bytes32 internal constant EXECUTOR_TYPE = 0x2dc858a00f3e417be1394b87c07158e989ec681ce8cc68a9093680ac1a870302;\n\n    string private constant ERROR_BLACKLISTED_CALL = \"EVMCALLS_BLACKLISTED_CALL\";\n    string private constant ERROR_INVALID_LENGTH = \"EVMCALLS_INVALID_LENGTH\";\n    string private constant ERROR_CALL_REVERTED = \"EVMCALLS_CALL_REVERTED\";\n\n    event LogScriptCall(address indexed sender, address indexed src, address indexed dst);\n\n    /**\n    * @notice Executes a number of call scripts\n    * @param _script [ specId (uint32) ] many calls with this structure ->\n    *    [ to (address: 20 bytes) ] [ calldataLength (uint32: 4 bytes) ] [ calldata (calldataLength bytes) ]\n    * @param _blacklist Addresses the script cannot call to, or will revert.\n    * @return always returns empty byte array\n    */\n    function execScript(bytes _script, bytes, address[] _blacklist) external isInitialized returns (bytes) {\n        uint256 location = SCRIPT_START_LOCATION; // first 32 bits are spec id\n        while (location < _script.length) {\n            address contractAddress = _script.addressAt(location);\n            // Check address being called is not blacklist\n            for (uint i = 0; i < _blacklist.length; i++) {\n                require(contractAddress != _blacklist[i], ERROR_BLACKLISTED_CALL);\n            }\n\n            // logged before execution to ensure event ordering in receipt\n            // if failed entire execution is reverted regardless\n            emit LogScriptCall(msg.sender, address(this), contractAddress);\n\n            uint256 calldataLength = uint256(_script.uint32At(location + 0x14));\n            uint256 startOffset = location + 0x14 + 0x04;\n            uint256 calldataStart = _script.locationOf(startOffset);\n\n            // compute end of script / next location\n            location = startOffset + calldataLength;\n            require(location <= _script.length, ERROR_INVALID_LENGTH);\n\n            bool success;\n            assembly {\n                success := call(sub(gas, 5000), contractAddress, 0, calldataStart, calldataLength, 0, 0)\n            }\n\n            require(success, ERROR_CALL_REVERTED);\n        }\n    }\n\n    function executorType() external pure returns (bytes32) {\n        return EXECUTOR_TYPE;\n    }\n}\n",
  "sourcePath": "@aragon/os/contracts/evmscript/executors/CallsScript.sol",
  "ast": {
    "absolutePath": "@aragon/os/contracts/evmscript/executors/CallsScript.sol",
    "exportedSymbols": {
      "CallsScript": [
        9777
      ]
    },
    "id": 9778,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 9629,
        "literals": [
          "solidity",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:39"
      },
      {
        "absolutePath": "@aragon/os/contracts/evmscript/ScriptHelpers.sol",
        "file": "../ScriptHelpers.sol",
        "id": 9630,
        "nodeType": "ImportDirective",
        "scope": 9778,
        "sourceUnit": 9616,
        "src": "82:30:39",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/evmscript/executors/BaseEVMScriptExecutor.sol",
        "file": "./BaseEVMScriptExecutor.sol",
        "id": 9631,
        "nodeType": "ImportDirective",
        "scope": 9778,
        "sourceUnit": 9628,
        "src": "113:37:39",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 9632,
              "name": "BaseEVMScriptExecutor",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 9627,
              "src": "177:21:39",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BaseEVMScriptExecutor_$9627",
                "typeString": "contract BaseEVMScriptExecutor"
              }
            },
            "id": 9633,
            "nodeType": "InheritanceSpecifier",
            "src": "177:21:39"
          }
        ],
        "contractDependencies": [
          8488,
          8761,
          8822,
          8869,
          9496,
          9627
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 9777,
        "linearizedBaseContracts": [
          9777,
          9627,
          8488,
          8822,
          8761,
          8869,
          9496
        ],
        "name": "CallsScript",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 9636,
            "libraryName": {
              "contractScope": null,
              "id": 9634,
              "name": "ScriptHelpers",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 9615,
              "src": "211:13:39",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ScriptHelpers_$9615",
                "typeString": "library ScriptHelpers"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "205:30:39",
            "typeName": {
              "id": 9635,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "229:5:39",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            }
          },
          {
            "constant": true,
            "id": 9639,
            "name": "EXECUTOR_TYPE",
            "nodeType": "VariableDeclaration",
            "scope": 9777,
            "src": "360:108:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 9637,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "360:7:39",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307832646338353861303066336534313762653133393462383763303731353865393839656336383163653863633638613930393336383061633161383730333032",
              "id": 9638,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "402:66:39",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_20708059268077943580677606616711462293513402141599588069272609168866821997314_by_1",
                "typeString": "int_const 2070...(69 digits omitted)...7314"
              },
              "value": "0x2dc858a00f3e417be1394b87c07158e989ec681ce8cc68a9093680ac1a870302"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 9642,
            "name": "ERROR_BLACKLISTED_CALL",
            "nodeType": "VariableDeclaration",
            "scope": 9777,
            "src": "475:76:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 9640,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "475:6:39",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "45564d43414c4c535f424c41434b4c49535445445f43414c4c",
              "id": 9641,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "524:27:39",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_820e7bc5a5dbe3fe12a354732308daec36659428c18b63a8bd98d3e1a1aa880c",
                "typeString": "literal_string \"EVMCALLS_BLACKLISTED_CALL\""
              },
              "value": "EVMCALLS_BLACKLISTED_CALL"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 9645,
            "name": "ERROR_INVALID_LENGTH",
            "nodeType": "VariableDeclaration",
            "scope": 9777,
            "src": "557:72:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 9643,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "557:6:39",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "45564d43414c4c535f494e56414c49445f4c454e475448",
              "id": 9644,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "604:25:39",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_b74cfdfb5c338a9838591e3a37b6a9b307874ae00970d0ccb03700cda2f9a5e1",
                "typeString": "literal_string \"EVMCALLS_INVALID_LENGTH\""
              },
              "value": "EVMCALLS_INVALID_LENGTH"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 9648,
            "name": "ERROR_CALL_REVERTED",
            "nodeType": "VariableDeclaration",
            "scope": 9777,
            "src": "635:70:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 9646,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "635:6:39",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "45564d43414c4c535f43414c4c5f5245564552544544",
              "id": 9647,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "681:24:39",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_fab8d304730f38f30e781dc6f5c91780b542a6f546339d6869545bcbca7c9148",
                "typeString": "literal_string \"EVMCALLS_CALL_REVERTED\""
              },
              "value": "EVMCALLS_CALL_REVERTED"
            },
            "visibility": "private"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 9656,
            "name": "LogScriptCall",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 9655,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9650,
                  "indexed": true,
                  "name": "sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 9656,
                  "src": "732:22:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9649,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "732:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9652,
                  "indexed": true,
                  "name": "src",
                  "nodeType": "VariableDeclaration",
                  "scope": 9656,
                  "src": "756:19:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9651,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "756:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9654,
                  "indexed": true,
                  "name": "dst",
                  "nodeType": "VariableDeclaration",
                  "scope": 9656,
                  "src": "777:19:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9653,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "777:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "731:66:39"
            },
            "src": "712:86:39"
          },
          {
            "body": {
              "id": 9767,
              "nodeType": "Block",
              "src": "1277:1247:39",
              "statements": [
                {
                  "assignments": [
                    9671
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 9671,
                      "name": "location",
                      "nodeType": "VariableDeclaration",
                      "scope": 9768,
                      "src": "1287:16:39",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 9670,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1287:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 9673,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 9672,
                    "name": "SCRIPT_START_LOCATION",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9626,
                    "src": "1306:21:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1287:40:39"
                },
                {
                  "body": {
                    "id": 9765,
                    "nodeType": "Block",
                    "src": "1400:1118:39",
                    "statements": [
                      {
                        "assignments": [
                          9679
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 9679,
                            "name": "contractAddress",
                            "nodeType": "VariableDeclaration",
                            "scope": 9768,
                            "src": "1414:23:39",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 9678,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "1414:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 9684,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 9682,
                              "name": "location",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9671,
                              "src": "1458:8:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 9680,
                              "name": "_script",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9658,
                              "src": "1440:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_calldata_ptr",
                                "typeString": "bytes calldata"
                              }
                            },
                            "id": 9681,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "addressAt",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 9567,
                            "src": "1440:17:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$",
                              "typeString": "function (bytes memory,uint256) pure returns (address)"
                            }
                          },
                          "id": 9683,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1440:27:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1414:53:39"
                      },
                      {
                        "body": {
                          "id": 9705,
                          "nodeType": "Block",
                          "src": "1585:98:39",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    "id": 9701,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 9697,
                                      "name": "contractAddress",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 9679,
                                      "src": "1611:15:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "!=",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 9698,
                                        "name": "_blacklist",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 9663,
                                        "src": "1630:10:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                          "typeString": "address[] calldata"
                                        }
                                      },
                                      "id": 9700,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 9699,
                                        "name": "i",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 9686,
                                        "src": "1641:1:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1630:13:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "src": "1611:32:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 9702,
                                    "name": "ERROR_BLACKLISTED_CALL",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9642,
                                    "src": "1645:22:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    {
                                      "typeIdentifier": "t_string_memory",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 9696,
                                  "name": "require",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    12673,
                                    12674
                                  ],
                                  "referencedDeclaration": 12674,
                                  "src": "1603:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                    "typeString": "function (bool,string memory) pure"
                                  }
                                },
                                "id": 9703,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1603:65:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 9704,
                              "nodeType": "ExpressionStatement",
                              "src": "1603:65:39"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9692,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 9689,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9686,
                            "src": "1557:1:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 9690,
                              "name": "_blacklist",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9663,
                              "src": "1561:10:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                "typeString": "address[] calldata"
                              }
                            },
                            "id": 9691,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1561:17:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1557:21:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 9706,
                        "initializationExpression": {
                          "assignments": [
                            9686
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 9686,
                              "name": "i",
                              "nodeType": "VariableDeclaration",
                              "scope": 9768,
                              "src": "1545:6:39",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 9685,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "1545:4:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "value": null,
                              "visibility": "internal"
                            }
                          ],
                          "id": 9688,
                          "initialValue": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 9687,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1554:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "1545:10:39"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 9694,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "1580:3:39",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 9693,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9686,
                              "src": "1580:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 9695,
                          "nodeType": "ExpressionStatement",
                          "src": "1580:3:39"
                        },
                        "nodeType": "ForStatement",
                        "src": "1540:143:39"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 9708,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12670,
                                "src": "1856:3:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 9709,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1856:10:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 9711,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12769,
                                  "src": "1876:4:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CallsScript_$9777",
                                    "typeString": "contract CallsScript"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_CallsScript_$9777",
                                    "typeString": "contract CallsScript"
                                  }
                                ],
                                "id": 9710,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1868:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 9712,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1868:13:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 9713,
                              "name": "contractAddress",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9679,
                              "src": "1883:15:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 9707,
                            "name": "LogScriptCall",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9656,
                            "src": "1842:13:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$",
                              "typeString": "function (address,address,address)"
                            }
                          },
                          "id": 9714,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1842:57:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 9715,
                        "nodeType": "EmitStatement",
                        "src": "1837:62:39"
                      },
                      {
                        "assignments": [
                          9717
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 9717,
                            "name": "calldataLength",
                            "nodeType": "VariableDeclaration",
                            "scope": 9768,
                            "src": "1914:22:39",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 9716,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "1914:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 9726,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 9723,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 9721,
                                    "name": "location",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9671,
                                    "src": "1964:8:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30783134",
                                    "id": 9722,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1975:4:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_20_by_1",
                                      "typeString": "int_const 20"
                                    },
                                    "value": "0x14"
                                  },
                                  "src": "1964:15:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 9719,
                                  "name": "_script",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9658,
                                  "src": "1947:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                    "typeString": "bytes calldata"
                                  }
                                },
                                "id": 9720,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "uint32At",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 9585,
                                "src": "1947:16:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$",
                                  "typeString": "function (bytes memory,uint256) pure returns (uint32)"
                                }
                              },
                              "id": 9724,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1947:33:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            ],
                            "id": 9718,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1939:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint256_$",
                              "typeString": "type(uint256)"
                            },
                            "typeName": "uint256"
                          },
                          "id": 9725,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1939:42:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1914:67:39"
                      },
                      {
                        "assignments": [
                          9728
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 9728,
                            "name": "startOffset",
                            "nodeType": "VariableDeclaration",
                            "scope": 9768,
                            "src": "1995:19:39",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 9727,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "1995:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 9734,
                        "initialValue": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9733,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 9731,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 9729,
                              "name": "location",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9671,
                              "src": "2017:8:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30783134",
                              "id": 9730,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2028:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_20_by_1",
                                "typeString": "int_const 20"
                              },
                              "value": "0x14"
                            },
                            "src": "2017:15:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30783034",
                            "id": 9732,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2035:4:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            },
                            "value": "0x04"
                          },
                          "src": "2017:22:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1995:44:39"
                      },
                      {
                        "assignments": [
                          9736
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 9736,
                            "name": "calldataStart",
                            "nodeType": "VariableDeclaration",
                            "scope": 9768,
                            "src": "2053:21:39",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 9735,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "2053:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 9741,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 9739,
                              "name": "startOffset",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9728,
                              "src": "2096:11:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 9737,
                              "name": "_script",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9658,
                              "src": "2077:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_calldata_ptr",
                                "typeString": "bytes calldata"
                              }
                            },
                            "id": 9738,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "locationOf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 9596,
                            "src": "2077:18:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$",
                              "typeString": "function (bytes memory,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 9740,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2077:31:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2053:55:39"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 9746,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 9742,
                            "name": "location",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9671,
                            "src": "2176:8:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 9745,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 9743,
                              "name": "startOffset",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9728,
                              "src": "2187:11:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 9744,
                              "name": "calldataLength",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9717,
                              "src": "2201:14:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "2187:28:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2176:39:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 9747,
                        "nodeType": "ExpressionStatement",
                        "src": "2176:39:39"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 9752,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 9749,
                                "name": "location",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9671,
                                "src": "2237:8:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 9750,
                                  "name": "_script",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9658,
                                  "src": "2249:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                    "typeString": "bytes calldata"
                                  }
                                },
                                "id": 9751,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "2249:14:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "2237:26:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 9753,
                              "name": "ERROR_INVALID_LENGTH",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9645,
                              "src": "2265:20:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            ],
                            "id": 9748,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              12673,
                              12674
                            ],
                            "referencedDeclaration": 12674,
                            "src": "2229:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 9754,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2229:57:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 9755,
                        "nodeType": "ExpressionStatement",
                        "src": "2229:57:39"
                      },
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 9757,
                            "name": "success",
                            "nodeType": "VariableDeclaration",
                            "scope": 9768,
                            "src": "2301:12:39",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 9756,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "2301:4:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 9758,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2301:12:39"
                      },
                      {
                        "externalReferences": [
                          {
                            "success": {
                              "declaration": 9757,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "2354:7:39",
                              "valueSize": 1
                            }
                          },
                          {
                            "contractAddress": {
                              "declaration": 9679,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "2386:15:39",
                              "valueSize": 1
                            }
                          },
                          {
                            "calldataStart": {
                              "declaration": 9736,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "2406:13:39",
                              "valueSize": 1
                            }
                          },
                          {
                            "calldataLength": {
                              "declaration": 9717,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "2421:14:39",
                              "valueSize": 1
                            }
                          }
                        ],
                        "id": 9759,
                        "nodeType": "InlineAssembly",
                        "operations": "{\n    success := call(sub(gas(), 5000), contractAddress, 0, calldataStart, calldataLength, 0, 0)\n}",
                        "src": "2327:150:39"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 9761,
                              "name": "success",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9757,
                              "src": "2478:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 9762,
                              "name": "ERROR_CALL_REVERTED",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9648,
                              "src": "2487:19:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            ],
                            "id": 9760,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              12673,
                              12674
                            ],
                            "referencedDeclaration": 12674,
                            "src": "2470:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 9763,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2470:37:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 9764,
                        "nodeType": "ExpressionStatement",
                        "src": "2470:37:39"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 9677,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 9674,
                      "name": "location",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9671,
                      "src": "1373:8:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 9675,
                        "name": "_script",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9658,
                        "src": "1384:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      "id": 9676,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1384:14:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1373:25:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9766,
                  "nodeType": "WhileStatement",
                  "src": "1366:1152:39"
                }
              ]
            },
            "documentation": "@notice Executes a number of call scripts\n@param _script [ specId (uint32) ] many calls with this structure ->\n   [ to (address: 20 bytes) ] [ calldataLength (uint32: 4 bytes) ] [ calldata (calldataLength bytes) ]\n@param _blacklist Addresses the script cannot call to, or will revert.\n@return always returns empty byte array",
            "id": 9768,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 9666,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 9665,
                  "name": "isInitialized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8703,
                  "src": "1247:13:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1247:13:39"
              }
            ],
            "name": "execScript",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9664,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9658,
                  "name": "_script",
                  "nodeType": "VariableDeclaration",
                  "scope": 9768,
                  "src": "1194:13:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9657,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1194:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9660,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 9768,
                  "src": "1209:5:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9659,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1209:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9663,
                  "name": "_blacklist",
                  "nodeType": "VariableDeclaration",
                  "scope": 9768,
                  "src": "1216:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 9661,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1216:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 9662,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1216:9:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1193:44:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 9669,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9668,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 9768,
                  "src": "1270:5:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9667,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1270:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1269:7:39"
            },
            "scope": 9777,
            "src": "1174:1350:39",
            "stateMutability": "nonpayable",
            "superFunction": 9490,
            "visibility": "external"
          },
          {
            "body": {
              "id": 9775,
              "nodeType": "Block",
              "src": "2586:37:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 9773,
                    "name": "EXECUTOR_TYPE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9639,
                    "src": "2603:13:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 9772,
                  "id": 9774,
                  "nodeType": "Return",
                  "src": "2596:20:39"
                }
              ]
            },
            "documentation": null,
            "id": 9776,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "executorType",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9769,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2551:2:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 9772,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9771,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 9776,
                  "src": "2577:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 9770,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2577:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2576:9:39"
            },
            "scope": 9777,
            "src": "2530:93:39",
            "stateMutability": "pure",
            "superFunction": 9495,
            "visibility": "external"
          }
        ],
        "scope": 9778,
        "src": "153:2472:39"
      }
    ],
    "src": "0:2626:39"
  },
  "legacyAST": {
    "absolutePath": "@aragon/os/contracts/evmscript/executors/CallsScript.sol",
    "exportedSymbols": {
      "CallsScript": [
        9777
      ]
    },
    "id": 9778,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 9629,
        "literals": [
          "solidity",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:39"
      },
      {
        "absolutePath": "@aragon/os/contracts/evmscript/ScriptHelpers.sol",
        "file": "../ScriptHelpers.sol",
        "id": 9630,
        "nodeType": "ImportDirective",
        "scope": 9778,
        "sourceUnit": 9616,
        "src": "82:30:39",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/evmscript/executors/BaseEVMScriptExecutor.sol",
        "file": "./BaseEVMScriptExecutor.sol",
        "id": 9631,
        "nodeType": "ImportDirective",
        "scope": 9778,
        "sourceUnit": 9628,
        "src": "113:37:39",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 9632,
              "name": "BaseEVMScriptExecutor",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 9627,
              "src": "177:21:39",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BaseEVMScriptExecutor_$9627",
                "typeString": "contract BaseEVMScriptExecutor"
              }
            },
            "id": 9633,
            "nodeType": "InheritanceSpecifier",
            "src": "177:21:39"
          }
        ],
        "contractDependencies": [
          8488,
          8761,
          8822,
          8869,
          9496,
          9627
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 9777,
        "linearizedBaseContracts": [
          9777,
          9627,
          8488,
          8822,
          8761,
          8869,
          9496
        ],
        "name": "CallsScript",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 9636,
            "libraryName": {
              "contractScope": null,
              "id": 9634,
              "name": "ScriptHelpers",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 9615,
              "src": "211:13:39",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ScriptHelpers_$9615",
                "typeString": "library ScriptHelpers"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "205:30:39",
            "typeName": {
              "id": 9635,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "229:5:39",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            }
          },
          {
            "constant": true,
            "id": 9639,
            "name": "EXECUTOR_TYPE",
            "nodeType": "VariableDeclaration",
            "scope": 9777,
            "src": "360:108:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 9637,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "360:7:39",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307832646338353861303066336534313762653133393462383763303731353865393839656336383163653863633638613930393336383061633161383730333032",
              "id": 9638,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "402:66:39",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_20708059268077943580677606616711462293513402141599588069272609168866821997314_by_1",
                "typeString": "int_const 2070...(69 digits omitted)...7314"
              },
              "value": "0x2dc858a00f3e417be1394b87c07158e989ec681ce8cc68a9093680ac1a870302"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 9642,
            "name": "ERROR_BLACKLISTED_CALL",
            "nodeType": "VariableDeclaration",
            "scope": 9777,
            "src": "475:76:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 9640,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "475:6:39",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "45564d43414c4c535f424c41434b4c49535445445f43414c4c",
              "id": 9641,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "524:27:39",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_820e7bc5a5dbe3fe12a354732308daec36659428c18b63a8bd98d3e1a1aa880c",
                "typeString": "literal_string \"EVMCALLS_BLACKLISTED_CALL\""
              },
              "value": "EVMCALLS_BLACKLISTED_CALL"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 9645,
            "name": "ERROR_INVALID_LENGTH",
            "nodeType": "VariableDeclaration",
            "scope": 9777,
            "src": "557:72:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 9643,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "557:6:39",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "45564d43414c4c535f494e56414c49445f4c454e475448",
              "id": 9644,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "604:25:39",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_b74cfdfb5c338a9838591e3a37b6a9b307874ae00970d0ccb03700cda2f9a5e1",
                "typeString": "literal_string \"EVMCALLS_INVALID_LENGTH\""
              },
              "value": "EVMCALLS_INVALID_LENGTH"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 9648,
            "name": "ERROR_CALL_REVERTED",
            "nodeType": "VariableDeclaration",
            "scope": 9777,
            "src": "635:70:39",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 9646,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "635:6:39",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "45564d43414c4c535f43414c4c5f5245564552544544",
              "id": 9647,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "681:24:39",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_fab8d304730f38f30e781dc6f5c91780b542a6f546339d6869545bcbca7c9148",
                "typeString": "literal_string \"EVMCALLS_CALL_REVERTED\""
              },
              "value": "EVMCALLS_CALL_REVERTED"
            },
            "visibility": "private"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 9656,
            "name": "LogScriptCall",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 9655,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9650,
                  "indexed": true,
                  "name": "sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 9656,
                  "src": "732:22:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9649,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "732:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9652,
                  "indexed": true,
                  "name": "src",
                  "nodeType": "VariableDeclaration",
                  "scope": 9656,
                  "src": "756:19:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9651,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "756:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9654,
                  "indexed": true,
                  "name": "dst",
                  "nodeType": "VariableDeclaration",
                  "scope": 9656,
                  "src": "777:19:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 9653,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "777:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "731:66:39"
            },
            "src": "712:86:39"
          },
          {
            "body": {
              "id": 9767,
              "nodeType": "Block",
              "src": "1277:1247:39",
              "statements": [
                {
                  "assignments": [
                    9671
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 9671,
                      "name": "location",
                      "nodeType": "VariableDeclaration",
                      "scope": 9768,
                      "src": "1287:16:39",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 9670,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1287:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 9673,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 9672,
                    "name": "SCRIPT_START_LOCATION",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9626,
                    "src": "1306:21:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1287:40:39"
                },
                {
                  "body": {
                    "id": 9765,
                    "nodeType": "Block",
                    "src": "1400:1118:39",
                    "statements": [
                      {
                        "assignments": [
                          9679
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 9679,
                            "name": "contractAddress",
                            "nodeType": "VariableDeclaration",
                            "scope": 9768,
                            "src": "1414:23:39",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 9678,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "1414:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 9684,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 9682,
                              "name": "location",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9671,
                              "src": "1458:8:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 9680,
                              "name": "_script",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9658,
                              "src": "1440:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_calldata_ptr",
                                "typeString": "bytes calldata"
                              }
                            },
                            "id": 9681,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "addressAt",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 9567,
                            "src": "1440:17:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$",
                              "typeString": "function (bytes memory,uint256) pure returns (address)"
                            }
                          },
                          "id": 9683,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1440:27:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1414:53:39"
                      },
                      {
                        "body": {
                          "id": 9705,
                          "nodeType": "Block",
                          "src": "1585:98:39",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    "id": 9701,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 9697,
                                      "name": "contractAddress",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 9679,
                                      "src": "1611:15:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "!=",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 9698,
                                        "name": "_blacklist",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 9663,
                                        "src": "1630:10:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                          "typeString": "address[] calldata"
                                        }
                                      },
                                      "id": 9700,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 9699,
                                        "name": "i",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 9686,
                                        "src": "1641:1:39",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1630:13:39",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "src": "1611:32:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 9702,
                                    "name": "ERROR_BLACKLISTED_CALL",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9642,
                                    "src": "1645:22:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    {
                                      "typeIdentifier": "t_string_memory",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 9696,
                                  "name": "require",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    12673,
                                    12674
                                  ],
                                  "referencedDeclaration": 12674,
                                  "src": "1603:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                    "typeString": "function (bool,string memory) pure"
                                  }
                                },
                                "id": 9703,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1603:65:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 9704,
                              "nodeType": "ExpressionStatement",
                              "src": "1603:65:39"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9692,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 9689,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9686,
                            "src": "1557:1:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 9690,
                              "name": "_blacklist",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9663,
                              "src": "1561:10:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                "typeString": "address[] calldata"
                              }
                            },
                            "id": 9691,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1561:17:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1557:21:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 9706,
                        "initializationExpression": {
                          "assignments": [
                            9686
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 9686,
                              "name": "i",
                              "nodeType": "VariableDeclaration",
                              "scope": 9768,
                              "src": "1545:6:39",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 9685,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "1545:4:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "value": null,
                              "visibility": "internal"
                            }
                          ],
                          "id": 9688,
                          "initialValue": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 9687,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1554:1:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "1545:10:39"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 9694,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "1580:3:39",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 9693,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9686,
                              "src": "1580:1:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 9695,
                          "nodeType": "ExpressionStatement",
                          "src": "1580:3:39"
                        },
                        "nodeType": "ForStatement",
                        "src": "1540:143:39"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 9708,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12670,
                                "src": "1856:3:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 9709,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1856:10:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 9711,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12769,
                                  "src": "1876:4:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CallsScript_$9777",
                                    "typeString": "contract CallsScript"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_CallsScript_$9777",
                                    "typeString": "contract CallsScript"
                                  }
                                ],
                                "id": 9710,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1868:7:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 9712,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1868:13:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 9713,
                              "name": "contractAddress",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9679,
                              "src": "1883:15:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 9707,
                            "name": "LogScriptCall",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9656,
                            "src": "1842:13:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$",
                              "typeString": "function (address,address,address)"
                            }
                          },
                          "id": 9714,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1842:57:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 9715,
                        "nodeType": "EmitStatement",
                        "src": "1837:62:39"
                      },
                      {
                        "assignments": [
                          9717
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 9717,
                            "name": "calldataLength",
                            "nodeType": "VariableDeclaration",
                            "scope": 9768,
                            "src": "1914:22:39",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 9716,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "1914:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 9726,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 9723,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 9721,
                                    "name": "location",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9671,
                                    "src": "1964:8:39",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30783134",
                                    "id": 9722,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1975:4:39",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_20_by_1",
                                      "typeString": "int_const 20"
                                    },
                                    "value": "0x14"
                                  },
                                  "src": "1964:15:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 9719,
                                  "name": "_script",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9658,
                                  "src": "1947:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                    "typeString": "bytes calldata"
                                  }
                                },
                                "id": 9720,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "uint32At",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 9585,
                                "src": "1947:16:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$",
                                  "typeString": "function (bytes memory,uint256) pure returns (uint32)"
                                }
                              },
                              "id": 9724,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1947:33:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            ],
                            "id": 9718,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1939:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint256_$",
                              "typeString": "type(uint256)"
                            },
                            "typeName": "uint256"
                          },
                          "id": 9725,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1939:42:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1914:67:39"
                      },
                      {
                        "assignments": [
                          9728
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 9728,
                            "name": "startOffset",
                            "nodeType": "VariableDeclaration",
                            "scope": 9768,
                            "src": "1995:19:39",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 9727,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "1995:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 9734,
                        "initialValue": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9733,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 9731,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 9729,
                              "name": "location",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9671,
                              "src": "2017:8:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30783134",
                              "id": 9730,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2028:4:39",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_20_by_1",
                                "typeString": "int_const 20"
                              },
                              "value": "0x14"
                            },
                            "src": "2017:15:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30783034",
                            "id": 9732,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2035:4:39",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            },
                            "value": "0x04"
                          },
                          "src": "2017:22:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1995:44:39"
                      },
                      {
                        "assignments": [
                          9736
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 9736,
                            "name": "calldataStart",
                            "nodeType": "VariableDeclaration",
                            "scope": 9768,
                            "src": "2053:21:39",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 9735,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "2053:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 9741,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 9739,
                              "name": "startOffset",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9728,
                              "src": "2096:11:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 9737,
                              "name": "_script",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9658,
                              "src": "2077:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_calldata_ptr",
                                "typeString": "bytes calldata"
                              }
                            },
                            "id": 9738,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "locationOf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 9596,
                            "src": "2077:18:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$",
                              "typeString": "function (bytes memory,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 9740,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2077:31:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2053:55:39"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 9746,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 9742,
                            "name": "location",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9671,
                            "src": "2176:8:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 9745,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 9743,
                              "name": "startOffset",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9728,
                              "src": "2187:11:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 9744,
                              "name": "calldataLength",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9717,
                              "src": "2201:14:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "2187:28:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2176:39:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 9747,
                        "nodeType": "ExpressionStatement",
                        "src": "2176:39:39"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 9752,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 9749,
                                "name": "location",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9671,
                                "src": "2237:8:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 9750,
                                  "name": "_script",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9658,
                                  "src": "2249:7:39",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                    "typeString": "bytes calldata"
                                  }
                                },
                                "id": 9751,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "2249:14:39",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "2237:26:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 9753,
                              "name": "ERROR_INVALID_LENGTH",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9645,
                              "src": "2265:20:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            ],
                            "id": 9748,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              12673,
                              12674
                            ],
                            "referencedDeclaration": 12674,
                            "src": "2229:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 9754,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2229:57:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 9755,
                        "nodeType": "ExpressionStatement",
                        "src": "2229:57:39"
                      },
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 9757,
                            "name": "success",
                            "nodeType": "VariableDeclaration",
                            "scope": 9768,
                            "src": "2301:12:39",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 9756,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "2301:4:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 9758,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2301:12:39"
                      },
                      {
                        "externalReferences": [
                          {
                            "success": {
                              "declaration": 9757,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "2354:7:39",
                              "valueSize": 1
                            }
                          },
                          {
                            "contractAddress": {
                              "declaration": 9679,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "2386:15:39",
                              "valueSize": 1
                            }
                          },
                          {
                            "calldataStart": {
                              "declaration": 9736,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "2406:13:39",
                              "valueSize": 1
                            }
                          },
                          {
                            "calldataLength": {
                              "declaration": 9717,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "2421:14:39",
                              "valueSize": 1
                            }
                          }
                        ],
                        "id": 9759,
                        "nodeType": "InlineAssembly",
                        "operations": "{\n    success := call(sub(gas(), 5000), contractAddress, 0, calldataStart, calldataLength, 0, 0)\n}",
                        "src": "2327:150:39"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 9761,
                              "name": "success",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9757,
                              "src": "2478:7:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 9762,
                              "name": "ERROR_CALL_REVERTED",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9648,
                              "src": "2487:19:39",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            ],
                            "id": 9760,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              12673,
                              12674
                            ],
                            "referencedDeclaration": 12674,
                            "src": "2470:7:39",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 9763,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2470:37:39",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 9764,
                        "nodeType": "ExpressionStatement",
                        "src": "2470:37:39"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 9677,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 9674,
                      "name": "location",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9671,
                      "src": "1373:8:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 9675,
                        "name": "_script",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9658,
                        "src": "1384:7:39",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      "id": 9676,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1384:14:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1373:25:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9766,
                  "nodeType": "WhileStatement",
                  "src": "1366:1152:39"
                }
              ]
            },
            "documentation": "@notice Executes a number of call scripts\n@param _script [ specId (uint32) ] many calls with this structure ->\n   [ to (address: 20 bytes) ] [ calldataLength (uint32: 4 bytes) ] [ calldata (calldataLength bytes) ]\n@param _blacklist Addresses the script cannot call to, or will revert.\n@return always returns empty byte array",
            "id": 9768,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 9666,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 9665,
                  "name": "isInitialized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8703,
                  "src": "1247:13:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1247:13:39"
              }
            ],
            "name": "execScript",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9664,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9658,
                  "name": "_script",
                  "nodeType": "VariableDeclaration",
                  "scope": 9768,
                  "src": "1194:13:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9657,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1194:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9660,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 9768,
                  "src": "1209:5:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9659,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1209:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9663,
                  "name": "_blacklist",
                  "nodeType": "VariableDeclaration",
                  "scope": 9768,
                  "src": "1216:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 9661,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1216:7:39",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 9662,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1216:9:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1193:44:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 9669,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9668,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 9768,
                  "src": "1270:5:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 9667,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1270:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1269:7:39"
            },
            "scope": 9777,
            "src": "1174:1350:39",
            "stateMutability": "nonpayable",
            "superFunction": 9490,
            "visibility": "external"
          },
          {
            "body": {
              "id": 9775,
              "nodeType": "Block",
              "src": "2586:37:39",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 9773,
                    "name": "EXECUTOR_TYPE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 9639,
                    "src": "2603:13:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 9772,
                  "id": 9774,
                  "nodeType": "Return",
                  "src": "2596:20:39"
                }
              ]
            },
            "documentation": null,
            "id": 9776,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "executorType",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9769,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2551:2:39"
            },
            "payable": false,
            "returnParameters": {
              "id": 9772,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9771,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 9776,
                  "src": "2577:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 9770,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2577:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2576:9:39"
            },
            "scope": 9777,
            "src": "2530:93:39",
            "stateMutability": "pure",
            "superFunction": 9495,
            "visibility": "external"
          }
        ],
        "scope": 9778,
        "src": "153:2472:39"
      }
    ],
    "src": "0:2626:39"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.1",
  "updatedAt": "2019-03-29T09:45:33.513Z",
  "devdoc": {
    "methods": {
      "execScript(bytes,bytes,address[])": {
        "params": {
          "_blacklist": "Addresses the script cannot call to, or will revert.",
          "_script": "[ specId (uint32) ] many calls with this structure ->   [ to (address: 20 bytes) ] [ calldataLength (uint32: 4 bytes) ] [ calldata (calldataLength bytes) ]"
        },
        "return": "always returns empty byte array"
      },
      "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": {
      "execScript(bytes,bytes,address[])": {
        "notice": "Executes a number of call scripts"
      }
    }
  }
}