{
  "contractName": "KitBase",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "APM_NODE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ens",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "OPEN_NODE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "fac",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ETH_NODE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_fac",
          "type": "address"
        },
        {
          "name": "_ens",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "dao",
          "type": "address"
        }
      ],
      "name": "DeployInstance",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "appProxy",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "InstalledApp",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "latestVersionAppBase",
      "outputs": [
        {
          "name": "base",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50604051604080610fd183398101806040528101908080519060200190929190805190602001909291905050506000816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610200576101036040805190810160405280600881526020017f626172652d6b6974000000000000000000000000000000000000000000000000815250600061024a640100000000026401000000009004565b905061011d81610574640100000000026401000000009004565b73ffffffffffffffffffffffffffffffffffffffff1663c3b314726040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561018057600080fd5b505af1158015610194573d6000803e3d6000fd5b505050506040513d60208110156101aa57600080fd5b8101908080519060200190929190505050600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610242565b82600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b505050610813565b6000811561041357600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f617261676f6e706d00000000000000000000000000000000000000000000000081525060080190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f6f70656e00000000000000000000000000000000000000000000000000000000815250600401905060405180910390206040518083600019166000191681526020018260001916600019168152602001925050506040518091039020836040518082805190602001908083835b6020831015156103b3578051825260208201915060208101905060208303925061038e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206040518083600019166000191681526020018260001916600019168152602001925050506040518091039020905061056e565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f617261676f6e706d000000000000000000000000000000000000000000000000815250600801905060405180910390206040518083600019166000191681526020018260001916600019168152602001925050506040518091039020836040518082805190602001908083835b60208310151561051257805182526020820191506020810190506020830392506104ed565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902090505b92915050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561060f57600080fd5b505af1158015610623573d6000803e3d6000fd5b505050506040513d602081101561063957600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16633b3b57de846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156106c057600080fd5b505af11580156106d4573d6000803e3d6000fd5b505050506040513d60208110156106ea57600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663c36af4606040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561076157600080fd5b505af1158015610775573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060a081101561079f57600080fd5b810190809190826060018051906020019092919080516401000000008111156107c757600080fd5b828101905060208101848111156107dd57600080fd5b81518560018202830111640100000000821117156107fa57600080fd5b5050929190505050909150508092505081915050919050565b6107af806108226000396000f300608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063097207781461007d5780633f15457f146100b057806379ae05e114610107578063c3b314721461013a578063c6d2c71714610191578063cc473be314610202575b600080fd5b34801561008957600080fd5b50610092610235565b60405180826000191660001916815260200191505060405180910390f35b3480156100bc57600080fd5b506100c5610301565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561011357600080fd5b5061011c610326565b60405180826000191660001916815260200191505060405180910390f35b34801561014657600080fd5b5061014f610454565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019d57600080fd5b506101c0600480360381019080803560001916906020019092919050505061047a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020e57600080fd5b50610217610719565b60405180826000191660001916815260200191505060405180910390f35b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f617261676f6e706d00000000000000000000000000000000000000000000000081525060080190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f617261676f6e706d00000000000000000000000000000000000000000000000081525060080190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f6f70656e0000000000000000000000000000000000000000000000000000000081525060040190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561051557600080fd5b505af1158015610529573d6000803e3d6000fd5b505050506040513d602081101561053f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16633b3b57de846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156105c657600080fd5b505af11580156105da573d6000803e3d6000fd5b505050506040513d60208110156105f057600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663c36af4606040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561066757600080fd5b505af115801561067b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060a08110156106a557600080fd5b810190809190826060018051906020019092919080516401000000008111156106cd57600080fd5b828101905060208101848111156106e357600080fd5b815185600182028301116401000000008211171561070057600080fd5b5050929190505050909150508092505081915050919050565b600060010260405180807f6574680000000000000000000000000000000000000000000000000000000000815250600301905060405180910390206040518083600019166000191681526020018260001916600019168152602001925050506040518091039020815600a165627a7a7230582032f60bfba4b5729e1f482b8e1064bd64a4ea645f84f2f8ce73816e05f9f24c770029",
  "deployedBytecode": "0x608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063097207781461007d5780633f15457f146100b057806379ae05e114610107578063c3b314721461013a578063c6d2c71714610191578063cc473be314610202575b600080fd5b34801561008957600080fd5b50610092610235565b60405180826000191660001916815260200191505060405180910390f35b3480156100bc57600080fd5b506100c5610301565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561011357600080fd5b5061011c610326565b60405180826000191660001916815260200191505060405180910390f35b34801561014657600080fd5b5061014f610454565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019d57600080fd5b506101c0600480360381019080803560001916906020019092919050505061047a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020e57600080fd5b50610217610719565b60405180826000191660001916815260200191505060405180910390f35b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f617261676f6e706d00000000000000000000000000000000000000000000000081525060080190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f617261676f6e706d00000000000000000000000000000000000000000000000081525060080190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f6f70656e0000000000000000000000000000000000000000000000000000000081525060040190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561051557600080fd5b505af1158015610529573d6000803e3d6000fd5b505050506040513d602081101561053f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16633b3b57de846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156105c657600080fd5b505af11580156105da573d6000803e3d6000fd5b505050506040513d60208110156105f057600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663c36af4606040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561066757600080fd5b505af115801561067b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060a08110156106a557600080fd5b810190809190826060018051906020019092919080516401000000008111156106cd57600080fd5b828101905060208101848111156106e357600080fd5b815185600182028301116401000000008211171561070057600080fd5b5050929190505050909150508092505081915050919050565b600060010260405180807f6574680000000000000000000000000000000000000000000000000000000000815250600301905060405180910390206040518083600019166000191681526020018260001916600019168152602001925050506040518091039020815600a165627a7a7230582032f60bfba4b5729e1f482b8e1064bd64a4ea645f84f2f8ce73816e05f9f24c770029",
  "sourceMap": "1126:779:0:-;;;1316:360;8:9:-1;5:2;;;30:1;27;20:12;5:2;1316:360:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1506:15;1378:4;1372:3;;:10;;;;;;;;;;;;;;;;;;1488:1;1463:27;;1471:4;1463:27;;;1459:211;;;1524:30;;;;;;;;;;;;;;;;;;;1548:5;1524:11;;;:30;;;:::i;:::-;1506:48;;1582:29;1603:7;1582:20;;;:29;;;:::i;:::-;1574:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1574:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1574:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1574:44:0;;;;;;;;;;;;;;;;1568:3;;:50;;;;;;;;;;;;;;;;;;1459:211;;;1655:4;1649:3;;:10;;;;;;;;;;;;;;;;;;1459:211;1316:360;;;1126:779;;875:246;943:7;966:4;962:153;;;684:1;676:10;;688:16;;;;;;;;;;;;;;;;;;;666:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;766:21;;;;;;;;;;;;;;;;;;;746:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;850:17;;;;;;;;;;;;;;;;;;;830:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1024:4;1014:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1014:15:0;;;;;;;;;;;;;;;;993:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;986:44;;;;962:153;684:1;676:10;;688:16;;;;;;;;;;;;;;;;;;;666:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;766:21;;;;;;;;;;;;;;;;;;;746:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1098:4;1088:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1088:15:0;;;;;;;;;;;;;;;;1068:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:43;;875:246;;;;;:::o;1682:221::-;1748:12;1772:9;1804:3;;;;;;;;;;;:12;;;1817:5;1804:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1804:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1804:19:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1804:19:0;;;;;;;;;;;;;;;;1789:40;;;1830:5;1789:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1789:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1789:47:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1789:47:0;;;;;;;;;;;;;;;;1772:65;;1858:4;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1858:16:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1858:16:0;;;;;;39::-1;36:1;17:17;2:54;1858:16:0;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:3;8;5:12;2:2;;;30:1;27;20:12;2:2;1858:16:0;;;;;;;;;;;;;;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;338:9;333:1;319:12;315:20;297:16;293:43;290:58;268:11;254:12;251:29;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;1858:16:0;;;;;;1847:27;;;;;;;;1892:4;1885:11;;1682:221;;;;:::o;1126:779::-;;;;;;;",
  "deployedSourceMap": "1126:779:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;711:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;711:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1164:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1164:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;794:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;794:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1191:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1191:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1682:221;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1682:221:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;631:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;631:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;711:77;684:1;676:10;;688:16;;;;;;;;;;;;;;;;;;;666:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;766:21;;;;;;;;;;;;;;;;;;;746:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;711:77;:::o;1164:21::-;;;;;;;;;;;;;:::o;794:74::-;684:1;676:10;;688:16;;;;;;;;;;;;;;;;;;;666:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;766:21;;;;;;;;;;;;;;;;;;;746:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;850:17;;;;;;;;;;;;;;;;;;;830:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:74;:::o;1191:21::-;;;;;;;;;;;;;:::o;1682:221::-;1748:12;1772:9;1804:3;;;;;;;;;;;:12;;;1817:5;1804:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1804:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1804:19:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1804:19:0;;;;;;;;;;;;;;;;1789:40;;;1830:5;1789:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1789:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1789:47:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1789:47:0;;;;;;;;;;;;;;;;1772:65;;1858:4;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1858:16:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1858:16:0;;;;;;39::-1;36:1;17:17;2:54;1858:16:0;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:3;8;5:12;2:2;;;30:1;27;20:12;2:2;1858:16:0;;;;;;;;;;;;;;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;338:9;333:1;319:12;315:20;297:16;293:43;290:58;268:11;254:12;251:29;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;1858:16:0;;;;;;1847:27;;;;;;;;1892:4;1885:11;;1682:221;;;;:::o;631:74::-;684:1;676:10;;688:16;;;;;;;;;;;;;;;;;;;666:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;631:74;:::o",
  "source": "pragma solidity ^0.4.24;\n\nimport \"@aragon/os/contracts/lib/ens/ENS.sol\";\nimport \"@aragon/os/contracts/lib/ens/PublicResolver.sol\";\nimport \"@aragon/os/contracts/apm/Repo.sol\";\nimport \"@aragon/os/contracts/factory/DAOFactory.sol\";\nimport \"@aragon/apps-shared-minime/contracts/MiniMeToken.sol\";\nimport \"@aragon/apps-vault/contracts/Vault.sol\";\nimport \"@aragon/apps-finance/contracts/Finance.sol\";\nimport \"@aragon/apps-voting/contracts/Voting.sol\";\nimport { PandoColony } from \"@pando/colony/contracts/PandoColony.sol\";\nimport { TokenManager } from \"@aragon/apps-token-manager/contracts/TokenManager.sol\";\n\n\ncontract APMNamehash {\n    bytes32 constant public ETH_NODE = keccak256(bytes32(0), keccak256(\"eth\"));\n    bytes32 constant public APM_NODE = keccak256(ETH_NODE, keccak256(\"aragonpm\"));\n    bytes32 constant public OPEN_NODE = keccak256(APM_NODE, keccak256(\"open\"));\n\n    function apmNamehash(string name, bool open) internal pure returns (bytes32) {\n        if (open) {\n            return keccak256(OPEN_NODE, keccak256(name));\n        } else {\n            return keccak256(APM_NODE, keccak256(name));\n        }\n    }\n}\n\n\ncontract KitBase is APMNamehash {\n    ENS        public ens;\n    DAOFactory public fac;\n\n    event DeployInstance(address dao);\n    event InstalledApp(address appProxy, bytes32 appId);\n\n    constructor(DAOFactory _fac, ENS _ens) public {\n        ens = _ens;\n\n        // If no factory is passed, get it from on-chain bare-kit\n        if (address(_fac) == address(0)) {\n            bytes32 bareKit = apmNamehash(\"bare-kit\", false);\n            fac = KitBase(latestVersionAppBase(bareKit)).fac();\n        } else {\n            fac = _fac;\n        }\n    }\n\n    function latestVersionAppBase(bytes32 appId) public view returns (address base) {\n        Repo repo = Repo(PublicResolver(ens.resolver(appId)).addr(appId));\n        (,base,) = repo.getLatest();\n\n        return base;\n    }\n}\n\n\ncontract PandoKit is KitBase {\n    bool devchain;\n    MiniMeTokenFactory tokenFactory;\n\n    uint256 constant PCT = 10 ** 16;\n    address constant ANY_ENTITY = address(-1);\n\n    event DeployToken(address token, string name, string symbol);\n\n    constructor(ENS _ens, MiniMeTokenFactory _tokenFactory, bool _devchain) public KitBase(DAOFactory(0), _ens) {\n        devchain = _devchain;\n        tokenFactory = _tokenFactory;\n    }\n\n    function newToken(string _name, string _symbol) external {\n        MiniMeToken token = tokenFactory.createCloneToken(MiniMeToken(address(0)), 0, _name, 0, _symbol, true);\n\n        emit DeployToken(address(token), _name, _symbol);\n    }\n\n    function newInstance(MiniMeToken token) external {\n        bytes32[5] memory appIds = [\n            apmNamehash(\"vault\", false),            // 0\n            apmNamehash(\"finance\", false),          // 1\n            apmNamehash(\"token-manager\", false),    // 2\n            apmNamehash(\"voting\", false),           // 3\n            apmNamehash(\"pando-colony\", !devchain)  // 4\n        ];\n\n        // DAO\n        Kernel dao = fac.newDAO(this);\n        ACL    acl = ACL(dao.acl());\n        EVMScriptRegistry reg = EVMScriptRegistry(acl.getEVMScriptRegistry());\n        acl.createPermission(this, dao, dao.APP_MANAGER_ROLE(), this);\n\n        // Apps\n        Vault vault = Vault(\n            dao.newAppInstance(\n                appIds[0],\n                latestVersionAppBase(appIds[0]),\n                new bytes(0),\n                true\n            )\n        );\n        emit InstalledApp(vault, appIds[0]);\n\n        Finance finance = Finance(\n            dao.newAppInstance(\n                appIds[1],\n                latestVersionAppBase(appIds[1])\n            )\n        );\n        emit InstalledApp(finance, appIds[1]);\n\n        TokenManager tokenManager = TokenManager(\n            dao.newAppInstance(\n                appIds[2],\n                latestVersionAppBase(appIds[2])\n            )\n        );\n        emit InstalledApp(tokenManager, appIds[2]);\n\n        Voting metavoting = Voting(\n            dao.newAppInstance(\n                appIds[3],\n                latestVersionAppBase(appIds[3])\n            )\n        );\n        emit InstalledApp(metavoting, appIds[3]);\n\n        PandoColony colony = PandoColony(\n            dao.newAppInstance(\n                appIds[4],\n                latestVersionAppBase(appIds[4])\n            )\n        );\n        emit InstalledApp(colony, appIds[4]);\n\n        // Permissions\n        acl.grantPermission(colony, dao, dao.APP_MANAGER_ROLE());\n        acl.grantPermission(colony, acl, acl.CREATE_PERMISSIONS_ROLE());\n        acl.createPermission(finance, vault, vault.TRANSFER_ROLE(), metavoting);\n        acl.createPermission(metavoting, finance, finance.CREATE_PAYMENTS_ROLE(), metavoting);\n        acl.createPermission(metavoting, finance, finance.EXECUTE_PAYMENTS_ROLE(), metavoting);\n        acl.createPermission(metavoting, finance, finance.MANAGE_PAYMENTS_ROLE(), metavoting);\n        acl.createPermission(this, tokenManager, tokenManager.MINT_ROLE(), this);\n        acl.createPermission(metavoting, tokenManager, tokenManager.ISSUE_ROLE(), metavoting);\n        acl.createPermission(metavoting, tokenManager, tokenManager.ASSIGN_ROLE(), metavoting);\n        acl.createPermission(metavoting, tokenManager, tokenManager.REVOKE_VESTINGS_ROLE(), metavoting);\n        acl.createPermission(metavoting, tokenManager, tokenManager.BURN_ROLE(), metavoting);\n        acl.createPermission(ANY_ENTITY, metavoting, metavoting.CREATE_VOTES_ROLE(), metavoting);\n        acl.createPermission(metavoting, metavoting, metavoting.MODIFY_SUPPORT_ROLE(), metavoting);\n        acl.createPermission(metavoting, metavoting, metavoting.MODIFY_QUORUM_ROLE(), metavoting);\n        acl.createPermission(ANY_ENTITY, colony, colony.CREATE_REPOSITORY_ROLE(), metavoting);\n        acl.createPermission(metavoting, reg, reg.REGISTRY_ADD_EXECUTOR_ROLE(), metavoting);\n        acl.createPermission(metavoting, reg, reg.REGISTRY_MANAGER_ROLE(), metavoting);\n\n        // Initialize apps\n        token.changeController(tokenManager);\n        vault.initialize();\n        finance.initialize(vault, 30 days);\n        tokenManager.initialize(token, true, 0);\n        metavoting.initialize(token, uint64(50 * PCT), uint64(20 * PCT), 1 days);\n        colony.initialize(ens, devchain);\n\n        // Mint token\n        tokenManager.mint(msg.sender, uint256(1));\n\n        // Cleanup permissions\n        acl.grantPermission(metavoting, dao, dao.APP_MANAGER_ROLE());\n        acl.revokePermission(this, dao, dao.APP_MANAGER_ROLE());\n        acl.setPermissionManager(metavoting, dao, dao.APP_MANAGER_ROLE());\n        acl.grantPermission(metavoting, acl, acl.CREATE_PERMISSIONS_ROLE());\n        acl.revokePermission(this, acl, acl.CREATE_PERMISSIONS_ROLE());\n        acl.setPermissionManager(metavoting, acl, acl.CREATE_PERMISSIONS_ROLE());\n        acl.grantPermission(metavoting, tokenManager, tokenManager.MINT_ROLE());\n        acl.revokePermission(this, tokenManager, tokenManager.MINT_ROLE());\n        acl.setPermissionManager(metavoting, tokenManager, tokenManager.MINT_ROLE());\n\n        emit DeployInstance(dao);\n    }\n}\n",
  "sourcePath": "/Users/osarrouy/Documents/PandoNetwork/pando/packages/pando-kit/contracts/PandoKit.sol",
  "ast": {
    "absolutePath": "/Users/osarrouy/Documents/PandoNetwork/pando/packages/pando-kit/contracts/PandoKit.sol",
    "exportedSymbols": {
      "APMNamehash": [
        68
      ],
      "KitBase": [
        159
      ],
      "PandoKit": [
        768
      ]
    },
    "id": 769,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:0"
      },
      {
        "absolutePath": "@aragon/os/contracts/lib/ens/ENS.sol",
        "file": "@aragon/os/contracts/lib/ens/ENS.sol",
        "id": 2,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 11105,
        "src": "26:46:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/lib/ens/PublicResolver.sol",
        "file": "@aragon/os/contracts/lib/ens/PublicResolver.sol",
        "id": 3,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 11567,
        "src": "73:57:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/apm/Repo.sol",
        "file": "@aragon/os/contracts/apm/Repo.sol",
        "id": 4,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 8092,
        "src": "131:43:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/factory/DAOFactory.sol",
        "file": "@aragon/os/contracts/factory/DAOFactory.sol",
        "id": 5,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 10091,
        "src": "175:53:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/apps-shared-minime/contracts/MiniMeToken.sol",
        "file": "@aragon/apps-shared-minime/contracts/MiniMeToken.sol",
        "id": 6,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 3785,
        "src": "229:62:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/apps-vault/contracts/Vault.sol",
        "file": "@aragon/apps-vault/contracts/Vault.sol",
        "id": 7,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 4918,
        "src": "292:48:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/apps-finance/contracts/Finance.sol",
        "file": "@aragon/apps-finance/contracts/Finance.sol",
        "id": 8,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 2646,
        "src": "341:52:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/apps-voting/contracts/Voting.sol",
        "file": "@aragon/apps-voting/contracts/Voting.sol",
        "id": 9,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 5863,
        "src": "394:50:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@pando/colony/contracts/PandoColony.sol",
        "file": "@pando/colony/contracts/PandoColony.sol",
        "id": 11,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 12134,
        "src": "445:70:0",
        "symbolAliases": [
          {
            "foreign": 10,
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/apps-token-manager/contracts/TokenManager.sol",
        "file": "@aragon/apps-token-manager/contracts/TokenManager.sol",
        "id": 13,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 4664,
        "src": "516:85:0",
        "symbolAliases": [
          {
            "foreign": 12,
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 68,
        "linearizedBaseContracts": [
          68
        ],
        "name": "APMNamehash",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 23,
            "name": "ETH_NODE",
            "nodeType": "VariableDeclaration",
            "scope": 68,
            "src": "631:74:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 14,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "631:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 17,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "684:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      }
                    ],
                    "id": 16,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "676:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_bytes32_$",
                      "typeString": "type(bytes32)"
                    },
                    "typeName": "bytes32"
                  },
                  "id": 18,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "676:10:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "657468",
                      "id": 20,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "698:5:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0",
                        "typeString": "literal_string \"eth\""
                      },
                      "value": "eth"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_stringliteral_4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0",
                        "typeString": "literal_string \"eth\""
                      }
                    ],
                    "id": 19,
                    "name": "keccak256",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12664,
                    "src": "688:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                      "typeString": "function () pure returns (bytes32)"
                    }
                  },
                  "id": 21,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "688:16:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                ],
                "id": 15,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "666:9:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 22,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "666:39:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 31,
            "name": "APM_NODE",
            "nodeType": "VariableDeclaration",
            "scope": 68,
            "src": "711:77:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 24,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "711:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "id": 26,
                  "name": "ETH_NODE",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 23,
                  "src": "756:8:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "617261676f6e706d",
                      "id": 28,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "776:10:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_1542111b4698ac085139692eae7c6efb632a4ae2779f8686da94511ebbbff594",
                        "typeString": "literal_string \"aragonpm\""
                      },
                      "value": "aragonpm"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_stringliteral_1542111b4698ac085139692eae7c6efb632a4ae2779f8686da94511ebbbff594",
                        "typeString": "literal_string \"aragonpm\""
                      }
                    ],
                    "id": 27,
                    "name": "keccak256",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12664,
                    "src": "766:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                      "typeString": "function () pure returns (bytes32)"
                    }
                  },
                  "id": 29,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "766:21:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                ],
                "id": 25,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "746:9:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 30,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "746:42:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 39,
            "name": "OPEN_NODE",
            "nodeType": "VariableDeclaration",
            "scope": 68,
            "src": "794:74:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 32,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "794:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "id": 34,
                  "name": "APM_NODE",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 31,
                  "src": "840:8:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "6f70656e",
                      "id": 36,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "860:6:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_99f30275ab70dd1890c0789c4570632b6f0b0284d11c2d9e587d0368f7027018",
                        "typeString": "literal_string \"open\""
                      },
                      "value": "open"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_stringliteral_99f30275ab70dd1890c0789c4570632b6f0b0284d11c2d9e587d0368f7027018",
                        "typeString": "literal_string \"open\""
                      }
                    ],
                    "id": 35,
                    "name": "keccak256",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12664,
                    "src": "850:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                      "typeString": "function () pure returns (bytes32)"
                    }
                  },
                  "id": 37,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "850:17:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                ],
                "id": 33,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "830:9:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 38,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "830:38:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 66,
              "nodeType": "Block",
              "src": "952:169:0",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 48,
                    "name": "open",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 43,
                    "src": "966:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 64,
                    "nodeType": "Block",
                    "src": "1047:68:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 58,
                              "name": "APM_NODE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 31,
                              "src": "1078:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 60,
                                  "name": "name",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 41,
                                  "src": "1098:4:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 59,
                                "name": "keccak256",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12664,
                                "src": "1088:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                                  "typeString": "function () pure returns (bytes32)"
                                }
                              },
                              "id": 61,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1088:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 57,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12664,
                            "src": "1068:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                              "typeString": "function () pure returns (bytes32)"
                            }
                          },
                          "id": 62,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1068:36:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "functionReturnParameters": 47,
                        "id": 63,
                        "nodeType": "Return",
                        "src": "1061:43:0"
                      }
                    ]
                  },
                  "id": 65,
                  "nodeType": "IfStatement",
                  "src": "962:153:0",
                  "trueBody": {
                    "id": 56,
                    "nodeType": "Block",
                    "src": "972:69:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 50,
                              "name": "OPEN_NODE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39,
                              "src": "1003:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 52,
                                  "name": "name",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 41,
                                  "src": "1024:4:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 51,
                                "name": "keccak256",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12664,
                                "src": "1014:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                                  "typeString": "function () pure returns (bytes32)"
                                }
                              },
                              "id": 53,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1014:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 49,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12664,
                            "src": "993:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                              "typeString": "function () pure returns (bytes32)"
                            }
                          },
                          "id": 54,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "993:37:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "functionReturnParameters": 47,
                        "id": 55,
                        "nodeType": "Return",
                        "src": "986:44:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 67,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "apmNamehash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 44,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 67,
                  "src": "896:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 40,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "896:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43,
                  "name": "open",
                  "nodeType": "VariableDeclaration",
                  "scope": 67,
                  "src": "909:9:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 42,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "909:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "895:24:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 47,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 67,
                  "src": "943:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 45,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "943:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "942:9:0"
            },
            "scope": 68,
            "src": "875:246:0",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 769,
        "src": "604:519:0"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 69,
              "name": "APMNamehash",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 68,
              "src": "1146:11:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_APMNamehash_$68",
                "typeString": "contract APMNamehash"
              }
            },
            "id": 70,
            "nodeType": "InheritanceSpecifier",
            "src": "1146:11:0"
          }
        ],
        "contractDependencies": [
          68
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 159,
        "linearizedBaseContracts": [
          159,
          68
        ],
        "name": "KitBase",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 72,
            "name": "ens",
            "nodeType": "VariableDeclaration",
            "scope": 159,
            "src": "1164:21:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ENS_$11104",
              "typeString": "contract ENS"
            },
            "typeName": {
              "contractScope": null,
              "id": 71,
              "name": "ENS",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11104,
              "src": "1164:3:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ENS_$11104",
                "typeString": "contract ENS"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 74,
            "name": "fac",
            "nodeType": "VariableDeclaration",
            "scope": 159,
            "src": "1191:21:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_DAOFactory_$10090",
              "typeString": "contract DAOFactory"
            },
            "typeName": {
              "contractScope": null,
              "id": 73,
              "name": "DAOFactory",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10090,
              "src": "1191:10:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DAOFactory_$10090",
                "typeString": "contract DAOFactory"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 78,
            "name": "DeployInstance",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 77,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 76,
                  "indexed": false,
                  "name": "dao",
                  "nodeType": "VariableDeclaration",
                  "scope": 78,
                  "src": "1240:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 75,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1240:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1239:13:0"
            },
            "src": "1219:34:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 84,
            "name": "InstalledApp",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 83,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 80,
                  "indexed": false,
                  "name": "appProxy",
                  "nodeType": "VariableDeclaration",
                  "scope": 84,
                  "src": "1277:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 79,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1277:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 82,
                  "indexed": false,
                  "name": "appId",
                  "nodeType": "VariableDeclaration",
                  "scope": 84,
                  "src": "1295:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 81,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1295:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1276:33:0"
            },
            "src": "1258:52:0"
          },
          {
            "body": {
              "id": 126,
              "nodeType": "Block",
              "src": "1362:314:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 93,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 91,
                      "name": "ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 72,
                      "src": "1372:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$11104",
                        "typeString": "contract ENS"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 92,
                      "name": "_ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 88,
                      "src": "1378:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$11104",
                        "typeString": "contract ENS"
                      }
                    },
                    "src": "1372:10:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$11104",
                      "typeString": "contract ENS"
                    }
                  },
                  "id": 94,
                  "nodeType": "ExpressionStatement",
                  "src": "1372:10:0"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 101,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 96,
                          "name": "_fac",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 86,
                          "src": "1471:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DAOFactory_$10090",
                            "typeString": "contract DAOFactory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_DAOFactory_$10090",
                            "typeString": "contract DAOFactory"
                          }
                        ],
                        "id": 95,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "1463:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 97,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1463:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 99,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1488:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 98,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "1480:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 100,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1480:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1463:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 124,
                    "nodeType": "Block",
                    "src": "1635:35:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 122,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 120,
                            "name": "fac",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 74,
                            "src": "1649:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DAOFactory_$10090",
                              "typeString": "contract DAOFactory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 121,
                            "name": "_fac",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 86,
                            "src": "1655:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DAOFactory_$10090",
                              "typeString": "contract DAOFactory"
                            }
                          },
                          "src": "1649:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DAOFactory_$10090",
                            "typeString": "contract DAOFactory"
                          }
                        },
                        "id": 123,
                        "nodeType": "ExpressionStatement",
                        "src": "1649:10:0"
                      }
                    ]
                  },
                  "id": 125,
                  "nodeType": "IfStatement",
                  "src": "1459:211:0",
                  "trueBody": {
                    "id": 119,
                    "nodeType": "Block",
                    "src": "1492:137:0",
                    "statements": [
                      {
                        "assignments": [
                          103
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 103,
                            "name": "bareKit",
                            "nodeType": "VariableDeclaration",
                            "scope": 127,
                            "src": "1506:15:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 102,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "1506:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 108,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "626172652d6b6974",
                              "id": 105,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1536:10:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_eae34e1d5adf3d84ddaf56c05425677b54d69a021ff0c01c8b5f2289b91a4e9f",
                                "typeString": "literal_string \"bare-kit\""
                              },
                              "value": "bare-kit"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 106,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1548:5:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_eae34e1d5adf3d84ddaf56c05425677b54d69a021ff0c01c8b5f2289b91a4e9f",
                                "typeString": "literal_string \"bare-kit\""
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 104,
                            "name": "apmNamehash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 67,
                            "src": "1524:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_bytes32_$",
                              "typeString": "function (string memory,bool) pure returns (bytes32)"
                            }
                          },
                          "id": 107,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1524:30:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1506:48:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 117,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 109,
                            "name": "fac",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 74,
                            "src": "1568:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DAOFactory_$10090",
                              "typeString": "contract DAOFactory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 112,
                                        "name": "bareKit",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 103,
                                        "src": "1603:7:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 111,
                                      "name": "latestVersionAppBase",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 158,
                                      "src": "1582:20:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                        "typeString": "function (bytes32) view returns (address)"
                                      }
                                    },
                                    "id": 113,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1582:29:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 110,
                                  "name": "KitBase",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 159,
                                  "src": "1574:7:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_KitBase_$159_$",
                                    "typeString": "type(contract KitBase)"
                                  }
                                },
                                "id": 114,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1574:38:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_KitBase_$159",
                                  "typeString": "contract KitBase"
                                }
                              },
                              "id": 115,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "fac",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 74,
                              "src": "1574:42:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_DAOFactory_$10090_$",
                                "typeString": "function () view external returns (contract DAOFactory)"
                              }
                            },
                            "id": 116,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1574:44:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DAOFactory_$10090",
                              "typeString": "contract DAOFactory"
                            }
                          },
                          "src": "1568:50:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DAOFactory_$10090",
                            "typeString": "contract DAOFactory"
                          }
                        },
                        "id": 118,
                        "nodeType": "ExpressionStatement",
                        "src": "1568:50:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 127,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 89,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 86,
                  "name": "_fac",
                  "nodeType": "VariableDeclaration",
                  "scope": 127,
                  "src": "1328:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DAOFactory_$10090",
                    "typeString": "contract DAOFactory"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 85,
                    "name": "DAOFactory",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 10090,
                    "src": "1328:10:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DAOFactory_$10090",
                      "typeString": "contract DAOFactory"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 88,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 127,
                  "src": "1345:8:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ENS_$11104",
                    "typeString": "contract ENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 87,
                    "name": "ENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 11104,
                    "src": "1345:3:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$11104",
                      "typeString": "contract ENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1327:27:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 90,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1362:0:0"
            },
            "scope": 159,
            "src": "1316:360:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 157,
              "nodeType": "Block",
              "src": "1762:141:0",
              "statements": [
                {
                  "assignments": [
                    135
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 135,
                      "name": "repo",
                      "nodeType": "VariableDeclaration",
                      "scope": 158,
                      "src": "1772:9:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Repo_$8091",
                        "typeString": "contract Repo"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 134,
                        "name": "Repo",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 8091,
                        "src": "1772:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Repo_$8091",
                          "typeString": "contract Repo"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 147,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 144,
                            "name": "appId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 129,
                            "src": "1830:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 140,
                                    "name": "appId",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 129,
                                    "src": "1817:5:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 138,
                                    "name": "ens",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 72,
                                    "src": "1804:3:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_ENS_$11104",
                                      "typeString": "contract ENS"
                                    }
                                  },
                                  "id": 139,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "resolver",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 10989,
                                  "src": "1804:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                    "typeString": "function (bytes32) view external returns (address)"
                                  }
                                },
                                "id": 141,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1804:19:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 137,
                              "name": "PublicResolver",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11566,
                              "src": "1789:14:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_PublicResolver_$11566_$",
                                "typeString": "type(contract PublicResolver)"
                              }
                            },
                            "id": 142,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1789:35:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PublicResolver_$11566",
                              "typeString": "contract PublicResolver"
                            }
                          },
                          "id": 143,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "addr",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 11272,
                          "src": "1789:40:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (bytes32) view external returns (address)"
                          }
                        },
                        "id": 145,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1789:47:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 136,
                      "name": "Repo",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8091,
                      "src": "1784:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Repo_$8091_$",
                        "typeString": "type(contract Repo)"
                      }
                    },
                    "id": 146,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1784:53:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Repo_$8091",
                      "typeString": "contract Repo"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1772:65:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 153,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        null,
                        {
                          "argumentTypes": null,
                          "id": 148,
                          "name": "base",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 132,
                          "src": "1849:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        null
                      ],
                      "id": 149,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "1847:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$_t_address_$__$",
                        "typeString": "tuple(,address,)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "id": 150,
                          "name": "repo",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 135,
                          "src": "1858:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Repo_$8091",
                            "typeString": "contract Repo"
                          }
                        },
                        "id": 151,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getLatest",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7895,
                        "src": "1858:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_uint16_$3_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$",
                          "typeString": "function () view external returns (uint16[3] memory,address,bytes memory)"
                        }
                      },
                      "id": 152,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1858:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_uint16_$3_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$",
                        "typeString": "tuple(uint16[3] memory,address,bytes memory)"
                      }
                    },
                    "src": "1847:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 154,
                  "nodeType": "ExpressionStatement",
                  "src": "1847:27:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 155,
                    "name": "base",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 132,
                    "src": "1892:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 133,
                  "id": 156,
                  "nodeType": "Return",
                  "src": "1885:11:0"
                }
              ]
            },
            "documentation": null,
            "id": 158,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "latestVersionAppBase",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 130,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 129,
                  "name": "appId",
                  "nodeType": "VariableDeclaration",
                  "scope": 158,
                  "src": "1712:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 128,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1712:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1711:15:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 133,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 132,
                  "name": "base",
                  "nodeType": "VariableDeclaration",
                  "scope": 158,
                  "src": "1748:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 131,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1748:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1747:14:0"
            },
            "scope": 159,
            "src": "1682:221:0",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 769,
        "src": "1126:779:0"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 160,
              "name": "KitBase",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 159,
              "src": "1929:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_KitBase_$159",
                "typeString": "contract KitBase"
              }
            },
            "id": 161,
            "nodeType": "InheritanceSpecifier",
            "src": "1929:7:0"
          }
        ],
        "contractDependencies": [
          68,
          159
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 768,
        "linearizedBaseContracts": [
          768,
          159,
          68
        ],
        "name": "PandoKit",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 163,
            "name": "devchain",
            "nodeType": "VariableDeclaration",
            "scope": 768,
            "src": "1943:13:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 162,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "1943:4:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 165,
            "name": "tokenFactory",
            "nodeType": "VariableDeclaration",
            "scope": 768,
            "src": "1962:31:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
              "typeString": "contract MiniMeTokenFactory"
            },
            "typeName": {
              "contractScope": null,
              "id": 164,
              "name": "MiniMeTokenFactory",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3784,
              "src": "1962:18:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
                "typeString": "contract MiniMeTokenFactory"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 170,
            "name": "PCT",
            "nodeType": "VariableDeclaration",
            "scope": 768,
            "src": "2000:31:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 166,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2000:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "commonType": {
                "typeIdentifier": "t_rational_10000000000000000_by_1",
                "typeString": "int_const 10000000000000000"
              },
              "id": 169,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "leftExpression": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 167,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "2023:2:0",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_10_by_1",
                  "typeString": "int_const 10"
                },
                "value": "10"
              },
              "nodeType": "BinaryOperation",
              "operator": "**",
              "rightExpression": {
                "argumentTypes": null,
                "hexValue": "3136",
                "id": 168,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "2029:2:0",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_16_by_1",
                  "typeString": "int_const 16"
                },
                "value": "16"
              },
              "src": "2023:8:0",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_10000000000000000_by_1",
                "typeString": "int_const 10000000000000000"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 176,
            "name": "ANY_ENTITY",
            "nodeType": "VariableDeclaration",
            "scope": 768,
            "src": "2037:41:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 171,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "2037:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "id": 174,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "nodeType": "UnaryOperation",
                  "operator": "-",
                  "prefix": true,
                  "src": "2075:2:0",
                  "subExpression": {
                    "argumentTypes": null,
                    "hexValue": "31",
                    "id": 173,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2076:1:0",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_1_by_1",
                      "typeString": "int_const 1"
                    },
                    "value": "1"
                  },
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_-1_by_1",
                    "typeString": "int_const -1"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_-1_by_1",
                    "typeString": "int_const -1"
                  }
                ],
                "id": 172,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "2067:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": "address"
              },
              "id": 175,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "2067:11:0",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 184,
            "name": "DeployToken",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 183,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 178,
                  "indexed": false,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 184,
                  "src": "2103:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 177,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2103:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 180,
                  "indexed": false,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 184,
                  "src": "2118:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 179,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2118:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 182,
                  "indexed": false,
                  "name": "symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 184,
                  "src": "2131:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 181,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2131:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2102:43:0"
            },
            "src": "2085:61:0"
          },
          {
            "body": {
              "id": 207,
              "nodeType": "Block",
              "src": "2260:75:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 201,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 199,
                      "name": "devchain",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 163,
                      "src": "2270:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 200,
                      "name": "_devchain",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 190,
                      "src": "2281:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2270:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 202,
                  "nodeType": "ExpressionStatement",
                  "src": "2270:20:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 205,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 203,
                      "name": "tokenFactory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 165,
                      "src": "2300:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
                        "typeString": "contract MiniMeTokenFactory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 204,
                      "name": "_tokenFactory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 188,
                      "src": "2315:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
                        "typeString": "contract MiniMeTokenFactory"
                      }
                    },
                    "src": "2300:28:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
                      "typeString": "contract MiniMeTokenFactory"
                    }
                  },
                  "id": 206,
                  "nodeType": "ExpressionStatement",
                  "src": "2300:28:0"
                }
              ]
            },
            "documentation": null,
            "id": 208,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 194,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2250:1:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 193,
                      "name": "DAOFactory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10090,
                      "src": "2239:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_DAOFactory_$10090_$",
                        "typeString": "type(contract DAOFactory)"
                      }
                    },
                    "id": 195,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2239:13:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DAOFactory_$10090",
                      "typeString": "contract DAOFactory"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 196,
                    "name": "_ens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 186,
                    "src": "2254:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$11104",
                      "typeString": "contract ENS"
                    }
                  }
                ],
                "id": 197,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 192,
                  "name": "KitBase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 159,
                  "src": "2231:7:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_KitBase_$159_$",
                    "typeString": "type(contract KitBase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2231:28:0"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 191,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 186,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 208,
                  "src": "2164:8:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ENS_$11104",
                    "typeString": "contract ENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 185,
                    "name": "ENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 11104,
                    "src": "2164:3:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$11104",
                      "typeString": "contract ENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 188,
                  "name": "_tokenFactory",
                  "nodeType": "VariableDeclaration",
                  "scope": 208,
                  "src": "2174:32:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
                    "typeString": "contract MiniMeTokenFactory"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 187,
                    "name": "MiniMeTokenFactory",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3784,
                    "src": "2174:18:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
                      "typeString": "contract MiniMeTokenFactory"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 190,
                  "name": "_devchain",
                  "nodeType": "VariableDeclaration",
                  "scope": 208,
                  "src": "2208:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 189,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2208:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2163:60:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 198,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2260:0:0"
            },
            "scope": 768,
            "src": "2152:183:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 239,
              "nodeType": "Block",
              "src": "2398:178:0",
              "statements": [
                {
                  "assignments": [
                    216
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 216,
                      "name": "token",
                      "nodeType": "VariableDeclaration",
                      "scope": 240,
                      "src": "2408:17:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                        "typeString": "contract MiniMeToken"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 215,
                        "name": "MiniMeToken",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3743,
                        "src": "2408:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 230,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 221,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2478:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 220,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2470:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 222,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2470:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 219,
                          "name": "MiniMeToken",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3743,
                          "src": "2458:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$3743_$",
                            "typeString": "type(contract MiniMeToken)"
                          }
                        },
                        "id": 223,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2458:23:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 224,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2483:1:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "id": 225,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 210,
                        "src": "2486:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 226,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2493:1:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "id": 227,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 212,
                        "src": "2496:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 228,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2505:4:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 217,
                        "name": "tokenFactory",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 165,
                        "src": "2428:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
                          "typeString": "contract MiniMeTokenFactory"
                        }
                      },
                      "id": 218,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createCloneToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3783,
                      "src": "2428:29:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_contract$_MiniMeToken_$3743_$_t_uint256_$_t_string_memory_ptr_$_t_uint8_$_t_string_memory_ptr_$_t_bool_$returns$_t_contract$_MiniMeToken_$3743_$",
                        "typeString": "function (contract MiniMeToken,uint256,string memory,uint8,string memory,bool) external returns (contract MiniMeToken)"
                      }
                    },
                    "id": 229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2428:82:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                      "typeString": "contract MiniMeToken"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2408:102:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 233,
                            "name": "token",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 216,
                            "src": "2546:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                              "typeString": "contract MiniMeToken"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                              "typeString": "contract MiniMeToken"
                            }
                          ],
                          "id": 232,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2538:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 234,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2538:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 235,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 210,
                        "src": "2554:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 236,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 212,
                        "src": "2561:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 231,
                      "name": "DeployToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 184,
                      "src": "2526:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (address,string memory,string memory)"
                      }
                    },
                    "id": 237,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2526:43:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 238,
                  "nodeType": "EmitStatement",
                  "src": "2521:48:0"
                }
              ]
            },
            "documentation": null,
            "id": 240,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "newToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 213,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 210,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 240,
                  "src": "2359:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 209,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2359:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 212,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 240,
                  "src": "2373:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 211,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2373:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2358:30:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 214,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2398:0:0"
            },
            "scope": 768,
            "src": "2341:235:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 766,
              "nodeType": "Block",
              "src": "2631:4466:0",
              "statements": [
                {
                  "assignments": [
                    249
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 249,
                      "name": "appIds",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "2641:24:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                        "typeString": "bytes32[5]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 247,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2641:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 248,
                        "length": {
                          "argumentTypes": null,
                          "hexValue": "35",
                          "id": 246,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2649:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          },
                          "value": "5"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "2641:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$5_storage_ptr",
                          "typeString": "bytes32[5]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 272,
                  "initialValue": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "7661756c74",
                            "id": 251,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2694:7:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_23c14fceac7676b670aa56866076586ea1ce15ddcf19208ec6346cf748dffbee",
                              "typeString": "literal_string \"vault\""
                            },
                            "value": "vault"
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 252,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2703:5:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_23c14fceac7676b670aa56866076586ea1ce15ddcf19208ec6346cf748dffbee",
                              "typeString": "literal_string \"vault\""
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 250,
                          "name": "apmNamehash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 67,
                          "src": "2682:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_bytes32_$",
                            "typeString": "function (string memory,bool) pure returns (bytes32)"
                          }
                        },
                        "id": 253,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2682:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "66696e616e6365",
                            "id": 255,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2751:9:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_2af4c2fb0d9965fa818b9c58b2744b328ab67b082ec92907629457399dacdb35",
                              "typeString": "literal_string \"finance\""
                            },
                            "value": "finance"
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 256,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2762:5:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_2af4c2fb0d9965fa818b9c58b2744b328ab67b082ec92907629457399dacdb35",
                              "typeString": "literal_string \"finance\""
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 254,
                          "name": "apmNamehash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 67,
                          "src": "2739:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_bytes32_$",
                            "typeString": "function (string memory,bool) pure returns (bytes32)"
                          }
                        },
                        "id": 257,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2739:29:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "746f6b656e2d6d616e61676572",
                            "id": 259,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2808:15:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_de5fa9c0ef6d18cdb8ef4461bfb45c94dc915629a2a1f311fb33838aff95436f",
                              "typeString": "literal_string \"token-manager\""
                            },
                            "value": "token-manager"
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 260,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2825:5:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_de5fa9c0ef6d18cdb8ef4461bfb45c94dc915629a2a1f311fb33838aff95436f",
                              "typeString": "literal_string \"token-manager\""
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 258,
                          "name": "apmNamehash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 67,
                          "src": "2796:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_bytes32_$",
                            "typeString": "function (string memory,bool) pure returns (bytes32)"
                          }
                        },
                        "id": 261,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2796:35:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "766f74696e67",
                            "id": 263,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2865:8:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_0e49311626a26ba5be58a3b13d239908e80ce0dffdd5c50bf1d9c82ff35d1ab3",
                              "typeString": "literal_string \"voting\""
                            },
                            "value": "voting"
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 264,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2875:5:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_0e49311626a26ba5be58a3b13d239908e80ce0dffdd5c50bf1d9c82ff35d1ab3",
                              "typeString": "literal_string \"voting\""
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 262,
                          "name": "apmNamehash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 67,
                          "src": "2853:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_bytes32_$",
                            "typeString": "function (string memory,bool) pure returns (bytes32)"
                          }
                        },
                        "id": 265,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2853:28:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "70616e646f2d636f6c6f6e79",
                            "id": 267,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2922:14:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_39fdfce5f61008c6306b497a2146ae2105fed6d2c6c32e9325a73fce867e5af1",
                              "typeString": "literal_string \"pando-colony\""
                            },
                            "value": "pando-colony"
                          },
                          {
                            "argumentTypes": null,
                            "id": 269,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "!",
                            "prefix": true,
                            "src": "2938:9:0",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 268,
                              "name": "devchain",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 163,
                              "src": "2939:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_39fdfce5f61008c6306b497a2146ae2105fed6d2c6c32e9325a73fce867e5af1",
                              "typeString": "literal_string \"pando-colony\""
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 266,
                          "name": "apmNamehash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 67,
                          "src": "2910:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_bytes32_$",
                            "typeString": "function (string memory,bool) pure returns (bytes32)"
                          }
                        },
                        "id": 270,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2910:38:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "id": 271,
                    "isConstant": false,
                    "isInlineArray": true,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "2668:296:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                      "typeString": "bytes32[5] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2641:323:0"
                },
                {
                  "assignments": [
                    274
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 274,
                      "name": "dao",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "2990:10:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Kernel_$10747",
                        "typeString": "contract Kernel"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 273,
                        "name": "Kernel",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 10747,
                        "src": "2990:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 279,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 277,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "3014:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 275,
                        "name": "fac",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 74,
                        "src": "3003:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_DAOFactory_$10090",
                          "typeString": "contract DAOFactory"
                        }
                      },
                      "id": 276,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "newDAO",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10089,
                      "src": "3003:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_contract$_Kernel_$10747_$",
                        "typeString": "function (address) external returns (contract Kernel)"
                      }
                    },
                    "id": 278,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3003:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Kernel_$10747",
                      "typeString": "contract Kernel"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2990:29:0"
                },
                {
                  "assignments": [
                    281
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 281,
                      "name": "acl",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "3029:10:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ACL_$7166",
                        "typeString": "contract ACL"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 280,
                        "name": "ACL",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7166,
                        "src": "3029:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 287,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 283,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "3046:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 284,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "acl",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10609,
                          "src": "3046:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IACL_$7681_$",
                            "typeString": "function () view external returns (contract IACL)"
                          }
                        },
                        "id": 285,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3046:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IACL_$7681",
                          "typeString": "contract IACL"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IACL_$7681",
                          "typeString": "contract IACL"
                        }
                      ],
                      "id": 282,
                      "name": "ACL",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7166,
                      "src": "3042:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_ACL_$7166_$",
                        "typeString": "type(contract ACL)"
                      }
                    },
                    "id": 286,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3042:14:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ACL_$7166",
                      "typeString": "contract ACL"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3029:27:0"
                },
                {
                  "assignments": [
                    289
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 289,
                      "name": "reg",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "3066:21:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                        "typeString": "contract EVMScriptRegistry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 288,
                        "name": "EVMScriptRegistry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 9287,
                        "src": "3066:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 295,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 291,
                            "name": "acl",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 281,
                            "src": "3108:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ACL_$7166",
                              "typeString": "contract ACL"
                            }
                          },
                          "id": 292,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getEVMScriptRegistry",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 9356,
                          "src": "3108:24:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IEVMScriptRegistry_$9523_$",
                            "typeString": "function () view external returns (contract IEVMScriptRegistry)"
                          }
                        },
                        "id": 293,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3108:26:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IEVMScriptRegistry_$9523",
                          "typeString": "contract IEVMScriptRegistry"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IEVMScriptRegistry_$9523",
                          "typeString": "contract IEVMScriptRegistry"
                        }
                      ],
                      "id": 290,
                      "name": "EVMScriptRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9287,
                      "src": "3090:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_EVMScriptRegistry_$9287_$",
                        "typeString": "type(contract EVMScriptRegistry)"
                      }
                    },
                    "id": 294,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3090:45:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                      "typeString": "contract EVMScriptRegistry"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3066:69:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 299,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "3166:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 300,
                        "name": "dao",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "3172:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 301,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "3177:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 302,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "APP_MANAGER_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10281,
                          "src": "3177:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 303,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3177:22:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 304,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "3201:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        },
                        {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 296,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "3145:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 298,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "3145:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 305,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3145:61:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 306,
                  "nodeType": "ExpressionStatement",
                  "src": "3145:61:0"
                },
                {
                  "assignments": [
                    308
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 308,
                      "name": "vault",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "3233:11:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Vault_$4917",
                        "typeString": "contract Vault"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 307,
                        "name": "Vault",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4917,
                        "src": "3233:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 327,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 312,
                              "name": "appIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 249,
                              "src": "3302:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                "typeString": "bytes32[5] memory"
                              }
                            },
                            "id": 314,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 313,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3309:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3302:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 316,
                                  "name": "appIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 249,
                                  "src": "3350:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                    "typeString": "bytes32[5] memory"
                                  }
                                },
                                "id": 318,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 317,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "3357:1:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "3350:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 315,
                              "name": "latestVersionAppBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 158,
                              "src": "3329:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view returns (address)"
                              }
                            },
                            "id": 319,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3329:31:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 322,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3388:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 321,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "3378:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$",
                                "typeString": "function (uint256) pure returns (bytes memory)"
                              },
                              "typeName": {
                                "id": 320,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "3382:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_storage_ptr",
                                  "typeString": "bytes"
                                }
                              }
                            },
                            "id": 323,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3378:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 324,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3408:4:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 310,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "3266:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 311,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "newAppInstance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10417,
                          "src": "3266:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_contract$_ERCProxy_$11872_$",
                            "typeString": "function (bytes32,address,bytes memory,bool) external returns (contract ERCProxy)"
                          }
                        },
                        "id": 325,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3266:160:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      ],
                      "id": 309,
                      "name": "Vault",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4917,
                      "src": "3247:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Vault_$4917_$",
                        "typeString": "type(contract Vault)"
                      }
                    },
                    "id": 326,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3247:189:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Vault_$4917",
                      "typeString": "contract Vault"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3233:203:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 329,
                        "name": "vault",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 308,
                        "src": "3464:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 330,
                          "name": "appIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 249,
                          "src": "3471:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                            "typeString": "bytes32[5] memory"
                          }
                        },
                        "id": 332,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 331,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3478:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3471:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 328,
                      "name": "InstalledApp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 84,
                      "src": "3451:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 333,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3451:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 334,
                  "nodeType": "EmitStatement",
                  "src": "3446:35:0"
                },
                {
                  "assignments": [
                    336
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 336,
                      "name": "finance",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "3492:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Finance_$2645",
                        "typeString": "contract Finance"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 335,
                        "name": "Finance",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2645,
                        "src": "3492:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 350,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 340,
                              "name": "appIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 249,
                              "src": "3567:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                "typeString": "bytes32[5] memory"
                              }
                            },
                            "id": 342,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 341,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3574:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3567:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 344,
                                  "name": "appIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 249,
                                  "src": "3615:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                    "typeString": "bytes32[5] memory"
                                  }
                                },
                                "id": 346,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 345,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "3622:1:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "3615:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 343,
                              "name": "latestVersionAppBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 158,
                              "src": "3594:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view returns (address)"
                              }
                            },
                            "id": 347,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3594:31:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 338,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "3531:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 339,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "newAppInstance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10373,
                          "src": "3531:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_ERCProxy_$11872_$",
                            "typeString": "function (bytes32,address) external returns (contract ERCProxy)"
                          }
                        },
                        "id": 348,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3531:108:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      ],
                      "id": 337,
                      "name": "Finance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2645,
                      "src": "3510:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Finance_$2645_$",
                        "typeString": "type(contract Finance)"
                      }
                    },
                    "id": 349,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3510:139:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Finance_$2645",
                      "typeString": "contract Finance"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3492:157:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 352,
                        "name": "finance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 336,
                        "src": "3677:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 353,
                          "name": "appIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 249,
                          "src": "3686:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                            "typeString": "bytes32[5] memory"
                          }
                        },
                        "id": 355,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 354,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3693:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3686:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 351,
                      "name": "InstalledApp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 84,
                      "src": "3664:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 356,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3664:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 357,
                  "nodeType": "EmitStatement",
                  "src": "3659:37:0"
                },
                {
                  "assignments": [
                    359
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 359,
                      "name": "tokenManager",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "3707:25:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_TokenManager_$4663",
                        "typeString": "contract TokenManager"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 358,
                        "name": "TokenManager",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4663,
                        "src": "3707:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 373,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 363,
                              "name": "appIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 249,
                              "src": "3797:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                "typeString": "bytes32[5] memory"
                              }
                            },
                            "id": 365,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "32",
                              "id": 364,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3804:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_2_by_1",
                                "typeString": "int_const 2"
                              },
                              "value": "2"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3797:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 367,
                                  "name": "appIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 249,
                                  "src": "3845:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                    "typeString": "bytes32[5] memory"
                                  }
                                },
                                "id": 369,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "32",
                                  "id": 368,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "3852:1:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  },
                                  "value": "2"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "3845:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 366,
                              "name": "latestVersionAppBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 158,
                              "src": "3824:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view returns (address)"
                              }
                            },
                            "id": 370,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3824:31:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 361,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "3761:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 362,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "newAppInstance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10373,
                          "src": "3761:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_ERCProxy_$11872_$",
                            "typeString": "function (bytes32,address) external returns (contract ERCProxy)"
                          }
                        },
                        "id": 371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3761:108:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      ],
                      "id": 360,
                      "name": "TokenManager",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4663,
                      "src": "3735:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_TokenManager_$4663_$",
                        "typeString": "type(contract TokenManager)"
                      }
                    },
                    "id": 372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3735:144:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_TokenManager_$4663",
                      "typeString": "contract TokenManager"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3707:172:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 375,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "3907:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 376,
                          "name": "appIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 249,
                          "src": "3921:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                            "typeString": "bytes32[5] memory"
                          }
                        },
                        "id": 378,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "32",
                          "id": 377,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3928:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2_by_1",
                            "typeString": "int_const 2"
                          },
                          "value": "2"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3921:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 374,
                      "name": "InstalledApp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 84,
                      "src": "3894:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 379,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3894:37:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 380,
                  "nodeType": "EmitStatement",
                  "src": "3889:42:0"
                },
                {
                  "assignments": [
                    382
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 382,
                      "name": "metavoting",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "3942:17:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Voting_$5862",
                        "typeString": "contract Voting"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 381,
                        "name": "Voting",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5862,
                        "src": "3942:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 396,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 386,
                              "name": "appIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 249,
                              "src": "4018:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                "typeString": "bytes32[5] memory"
                              }
                            },
                            "id": 388,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "33",
                              "id": 387,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4025:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_3_by_1",
                                "typeString": "int_const 3"
                              },
                              "value": "3"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4018:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 390,
                                  "name": "appIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 249,
                                  "src": "4066:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                    "typeString": "bytes32[5] memory"
                                  }
                                },
                                "id": 392,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "33",
                                  "id": 391,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4073:1:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_3_by_1",
                                    "typeString": "int_const 3"
                                  },
                                  "value": "3"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "4066:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 389,
                              "name": "latestVersionAppBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 158,
                              "src": "4045:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view returns (address)"
                              }
                            },
                            "id": 393,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4045:31:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 384,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "3982:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 385,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "newAppInstance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10373,
                          "src": "3982:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_ERCProxy_$11872_$",
                            "typeString": "function (bytes32,address) external returns (contract ERCProxy)"
                          }
                        },
                        "id": 394,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3982:108:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      ],
                      "id": 383,
                      "name": "Voting",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5862,
                      "src": "3962:6:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Voting_$5862_$",
                        "typeString": "type(contract Voting)"
                      }
                    },
                    "id": 395,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3962:138:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Voting_$5862",
                      "typeString": "contract Voting"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3942:158:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 398,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4128:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 399,
                          "name": "appIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 249,
                          "src": "4140:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                            "typeString": "bytes32[5] memory"
                          }
                        },
                        "id": 401,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "33",
                          "id": 400,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4147:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_3_by_1",
                            "typeString": "int_const 3"
                          },
                          "value": "3"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4140:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 397,
                      "name": "InstalledApp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 84,
                      "src": "4115:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 402,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4115:35:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 403,
                  "nodeType": "EmitStatement",
                  "src": "4110:40:0"
                },
                {
                  "assignments": [
                    405
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 405,
                      "name": "colony",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "4161:18:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PandoColony_$12133",
                        "typeString": "contract PandoColony"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 404,
                        "name": "PandoColony",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 12133,
                        "src": "4161:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 419,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 409,
                              "name": "appIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 249,
                              "src": "4243:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                "typeString": "bytes32[5] memory"
                              }
                            },
                            "id": 411,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "34",
                              "id": 410,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4250:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_4_by_1",
                                "typeString": "int_const 4"
                              },
                              "value": "4"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4243:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 413,
                                  "name": "appIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 249,
                                  "src": "4291:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                    "typeString": "bytes32[5] memory"
                                  }
                                },
                                "id": 415,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "34",
                                  "id": 414,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4298:1:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_4_by_1",
                                    "typeString": "int_const 4"
                                  },
                                  "value": "4"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "4291:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 412,
                              "name": "latestVersionAppBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 158,
                              "src": "4270:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view returns (address)"
                              }
                            },
                            "id": 416,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4270:31:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 407,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "4207:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "newAppInstance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10373,
                          "src": "4207:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_ERCProxy_$11872_$",
                            "typeString": "function (bytes32,address) external returns (contract ERCProxy)"
                          }
                        },
                        "id": 417,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4207:108:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      ],
                      "id": 406,
                      "name": "PandoColony",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12133,
                      "src": "4182:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_PandoColony_$12133_$",
                        "typeString": "type(contract PandoColony)"
                      }
                    },
                    "id": 418,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4182:143:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PandoColony_$12133",
                      "typeString": "contract PandoColony"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4161:164:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 421,
                        "name": "colony",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 405,
                        "src": "4353:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 422,
                          "name": "appIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 249,
                          "src": "4361:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                            "typeString": "bytes32[5] memory"
                          }
                        },
                        "id": 424,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "34",
                          "id": 423,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4368:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_4_by_1",
                            "typeString": "int_const 4"
                          },
                          "value": "4"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4361:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 420,
                      "name": "InstalledApp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 84,
                      "src": "4340:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 425,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4340:31:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 426,
                  "nodeType": "EmitStatement",
                  "src": "4335:36:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 430,
                        "name": "colony",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 405,
                        "src": "4425:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 431,
                        "name": "dao",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "4433:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 432,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "4438:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 433,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "APP_MANAGER_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10281,
                          "src": "4438:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 434,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4438:22:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        },
                        {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 427,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4405:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 429,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "grantPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6103,
                      "src": "4405:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4405:56:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 436,
                  "nodeType": "ExpressionStatement",
                  "src": "4405:56:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 440,
                        "name": "colony",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 405,
                        "src": "4491:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 441,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4499:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 442,
                            "name": "acl",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 281,
                            "src": "4504:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ACL_$7166",
                              "typeString": "contract ACL"
                            }
                          },
                          "id": 443,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "CREATE_PERMISSIONS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5880,
                          "src": "4504:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 444,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4504:29:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        },
                        {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 437,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4471:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 439,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "grantPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6103,
                      "src": "4471:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 445,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4471:63:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 446,
                  "nodeType": "ExpressionStatement",
                  "src": "4471:63:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 450,
                        "name": "finance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 336,
                        "src": "4565:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 451,
                        "name": "vault",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 308,
                        "src": "4574:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 452,
                            "name": "vault",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 308,
                            "src": "4581:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Vault_$4917",
                              "typeString": "contract Vault"
                            }
                          },
                          "id": 453,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "TRANSFER_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4680,
                          "src": "4581:19:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 454,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4581:21:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 455,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4604:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        },
                        {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 447,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4544:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 449,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "4544:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 456,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4544:71:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 457,
                  "nodeType": "ExpressionStatement",
                  "src": "4544:71:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 461,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4646:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 462,
                        "name": "finance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 336,
                        "src": "4658:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 463,
                            "name": "finance",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 336,
                            "src": "4667:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Finance_$2645",
                              "typeString": "contract Finance"
                            }
                          },
                          "id": 464,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "CREATE_PAYMENTS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 860,
                          "src": "4667:28:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 465,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4667:30:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 466,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4699:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 458,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4625:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 460,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "4625:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4625:85:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 468,
                  "nodeType": "ExpressionStatement",
                  "src": "4625:85:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 472,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4741:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 473,
                        "name": "finance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 336,
                        "src": "4753:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 474,
                            "name": "finance",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 336,
                            "src": "4762:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Finance_$2645",
                              "typeString": "contract Finance"
                            }
                          },
                          "id": 475,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "EXECUTE_PAYMENTS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 875,
                          "src": "4762:29:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 476,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4762:31:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 477,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4795:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 469,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4720:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 471,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "4720:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 478,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4720:86:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 479,
                  "nodeType": "ExpressionStatement",
                  "src": "4720:86:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 483,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4837:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 484,
                        "name": "finance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 336,
                        "src": "4849:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 485,
                            "name": "finance",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 336,
                            "src": "4858:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Finance_$2645",
                              "typeString": "contract Finance"
                            }
                          },
                          "id": 486,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "MANAGE_PAYMENTS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 880,
                          "src": "4858:28:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 487,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4858:30:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 488,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4890:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 480,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4816:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 482,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "4816:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 489,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4816:85:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 490,
                  "nodeType": "ExpressionStatement",
                  "src": "4816:85:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 494,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "4932:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 495,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "4938:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 496,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "4952:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 497,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "MINT_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3810,
                          "src": "4952:22:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 498,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4952:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 499,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "4978:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 491,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4911:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 493,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "4911:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 500,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4911:72:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 501,
                  "nodeType": "ExpressionStatement",
                  "src": "4911:72:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 505,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5014:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 506,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "5026:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 507,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "5040:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 508,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "ISSUE_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3815,
                          "src": "5040:23:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 509,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5040:25:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 510,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5067:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 502,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4993:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 504,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "4993:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 511,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4993:85:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 512,
                  "nodeType": "ExpressionStatement",
                  "src": "4993:85:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 516,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5109:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 517,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "5121:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 518,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "5135:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 519,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "ASSIGN_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3820,
                          "src": "5135:24:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 520,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5135:26:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 521,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5163:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 513,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5088:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 515,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5088:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 522,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5088:86:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 523,
                  "nodeType": "ExpressionStatement",
                  "src": "5088:86:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 527,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5205:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 528,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "5217:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 529,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "5231:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 530,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "REVOKE_VESTINGS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3825,
                          "src": "5231:33:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 531,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5231:35:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 532,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5268:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 524,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5184:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 526,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5184:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 533,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5184:95:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 534,
                  "nodeType": "ExpressionStatement",
                  "src": "5184:95:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 538,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5310:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 539,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "5322:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 540,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "5336:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 541,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "BURN_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3830,
                          "src": "5336:22:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 542,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5336:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 543,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5362:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 535,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5289:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 537,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5289:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 544,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5289:84:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 545,
                  "nodeType": "ExpressionStatement",
                  "src": "5289:84:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 549,
                        "name": "ANY_ENTITY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 176,
                        "src": "5404:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 550,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5416:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 551,
                            "name": "metavoting",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 382,
                            "src": "5428:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Voting_$5862",
                              "typeString": "contract Voting"
                            }
                          },
                          "id": 552,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "CREATE_VOTES_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4939,
                          "src": "5428:28:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 553,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5428:30:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 554,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5460:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 546,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5383:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 548,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5383:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 555,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5383:88:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 556,
                  "nodeType": "ExpressionStatement",
                  "src": "5383:88:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 560,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5502:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 561,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5514:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 562,
                            "name": "metavoting",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 382,
                            "src": "5526:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Voting_$5862",
                              "typeString": "contract Voting"
                            }
                          },
                          "id": 563,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "MODIFY_SUPPORT_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4944,
                          "src": "5526:30:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 564,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5526:32:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 565,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5560:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 557,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5481:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 559,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5481:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 566,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5481:90:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 567,
                  "nodeType": "ExpressionStatement",
                  "src": "5481:90:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 571,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5602:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 572,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5614:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 573,
                            "name": "metavoting",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 382,
                            "src": "5626:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Voting_$5862",
                              "typeString": "contract Voting"
                            }
                          },
                          "id": 574,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "MODIFY_QUORUM_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4949,
                          "src": "5626:29:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 575,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5626:31:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 576,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5659:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 568,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5581:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 570,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5581:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 577,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5581:89:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 578,
                  "nodeType": "ExpressionStatement",
                  "src": "5581:89:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 582,
                        "name": "ANY_ENTITY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 176,
                        "src": "5701:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 583,
                        "name": "colony",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 405,
                        "src": "5713:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 584,
                            "name": "colony",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 405,
                            "src": "5721:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PandoColony_$12133",
                              "typeString": "contract PandoColony"
                            }
                          },
                          "id": 585,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "CREATE_REPOSITORY_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 11957,
                          "src": "5721:29:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 586,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5721:31:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 587,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5754:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 579,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5680:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 581,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5680:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 588,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5680:85:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 589,
                  "nodeType": "ExpressionStatement",
                  "src": "5680:85:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 593,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5796:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 594,
                        "name": "reg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 289,
                        "src": "5808:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 595,
                            "name": "reg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 289,
                            "src": "5813:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                              "typeString": "contract EVMScriptRegistry"
                            }
                          },
                          "id": 596,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "REGISTRY_ADD_EXECUTOR_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 9084,
                          "src": "5813:30:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 597,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5813:32:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 598,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5847:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 590,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5775:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 592,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5775:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 599,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5775:83:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 600,
                  "nodeType": "ExpressionStatement",
                  "src": "5775:83:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 604,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5889:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 605,
                        "name": "reg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 289,
                        "src": "5901:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 606,
                            "name": "reg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 289,
                            "src": "5906:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                              "typeString": "contract EVMScriptRegistry"
                            }
                          },
                          "id": 607,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "REGISTRY_MANAGER_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 9087,
                          "src": "5906:25:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 608,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5906:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 609,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5935:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 601,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5868:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 603,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5868:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 610,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5868:78:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 611,
                  "nodeType": "ExpressionStatement",
                  "src": "5868:78:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 615,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "6007:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 612,
                        "name": "token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 242,
                        "src": "5984:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        }
                      },
                      "id": 614,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "changeController",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2714,
                      "src": "5984:22:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 616,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5984:36:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 617,
                  "nodeType": "ExpressionStatement",
                  "src": "5984:36:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 618,
                        "name": "vault",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 308,
                        "src": "6030:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        }
                      },
                      "id": 620,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4754,
                      "src": "6030:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 621,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6030:18:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 622,
                  "nodeType": "ExpressionStatement",
                  "src": "6030:18:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 626,
                        "name": "vault",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 308,
                        "src": "6077:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "3330",
                        "id": 627,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6084:7:0",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2592000_by_1",
                          "typeString": "int_const 2592000"
                        },
                        "value": "30"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        },
                        {
                          "typeIdentifier": "t_rational_2592000_by_1",
                          "typeString": "int_const 2592000"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 623,
                        "name": "finance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 336,
                        "src": "6058:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        }
                      },
                      "id": 625,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1232,
                      "src": "6058:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Vault_$4917_$_t_uint64_$returns$__$",
                        "typeString": "function (contract Vault,uint64) external"
                      }
                    },
                    "id": 628,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6058:34:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 629,
                  "nodeType": "ExpressionStatement",
                  "src": "6058:34:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 633,
                        "name": "token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 242,
                        "src": "6126:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 634,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6133:4:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 635,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6139:1:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 630,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "6102:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      "id": 632,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3986,
                      "src": "6102:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_contract$_MiniMeToken_$3743_$_t_bool_$_t_uint256_$returns$__$",
                        "typeString": "function (contract MiniMeToken,bool,uint256) external"
                      }
                    },
                    "id": 636,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6102:39:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 637,
                  "nodeType": "ExpressionStatement",
                  "src": "6102:39:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 641,
                        "name": "token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 242,
                        "src": "6173:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 645,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "hexValue": "3530",
                              "id": 643,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6187:2:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_50_by_1",
                                "typeString": "int_const 50"
                              },
                              "value": "50"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "*",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 644,
                              "name": "PCT",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 170,
                              "src": "6192:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "6187:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 642,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6180:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": "uint64"
                        },
                        "id": 646,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6180:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 650,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "hexValue": "3230",
                              "id": 648,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6205:2:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_20_by_1",
                                "typeString": "int_const 20"
                              },
                              "value": "20"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "*",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 649,
                              "name": "PCT",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 170,
                              "src": "6210:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "6205:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 647,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6198:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": "uint64"
                        },
                        "id": 651,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6198:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 652,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6216:6:0",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_86400_by_1",
                          "typeString": "int_const 86400"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_rational_86400_by_1",
                          "typeString": "int_const 86400"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 638,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "6151:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      "id": 640,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5115,
                      "src": "6151:21:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_contract$_MiniMeToken_$3743_$_t_uint64_$_t_uint64_$_t_uint64_$returns$__$",
                        "typeString": "function (contract MiniMeToken,uint64,uint64,uint64) external"
                      }
                    },
                    "id": 653,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6151:72:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 654,
                  "nodeType": "ExpressionStatement",
                  "src": "6151:72:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 658,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 72,
                        "src": "6251:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$11104",
                          "typeString": "contract ENS"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 659,
                        "name": "devchain",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 163,
                        "src": "6256:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ENS_$11104",
                          "typeString": "contract ENS"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 655,
                        "name": "colony",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 405,
                        "src": "6233:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        }
                      },
                      "id": 657,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11993,
                      "src": "6233:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ENS_$11104_$_t_bool_$returns$__$",
                        "typeString": "function (contract ENS,bool) external"
                      }
                    },
                    "id": 660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6233:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 661,
                  "nodeType": "ExpressionStatement",
                  "src": "6233:32:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 665,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "6316:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 666,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6316:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "31",
                            "id": 668,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6336:1:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            }
                          ],
                          "id": 667,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6328:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 669,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6328:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 662,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "6298:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      "id": 664,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4014,
                      "src": "6298:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 670,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6298:41:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 671,
                  "nodeType": "ExpressionStatement",
                  "src": "6298:41:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 675,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "6401:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 676,
                        "name": "dao",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "6413:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 677,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "6418:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 678,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "APP_MANAGER_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10281,
                          "src": "6418:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 679,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6418:22:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 672,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6381:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 674,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "grantPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6103,
                      "src": "6381:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 680,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6381:60:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 681,
                  "nodeType": "ExpressionStatement",
                  "src": "6381:60:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 685,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "6472:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 686,
                        "name": "dao",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "6478:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 687,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "6483:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 688,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "APP_MANAGER_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10281,
                          "src": "6483:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 689,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6483:22:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        },
                        {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 682,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6451:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 684,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revokePermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6160,
                      "src": "6451:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 690,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6451:55:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 691,
                  "nodeType": "ExpressionStatement",
                  "src": "6451:55:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 695,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "6541:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 696,
                        "name": "dao",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "6553:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 697,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "6558:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 698,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "APP_MANAGER_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10281,
                          "src": "6558:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 699,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6558:22:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 692,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6516:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 694,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setPermissionManager",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6180,
                      "src": "6516:24:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 700,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6516:65:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 701,
                  "nodeType": "ExpressionStatement",
                  "src": "6516:65:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 705,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "6611:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 706,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6623:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 707,
                            "name": "acl",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 281,
                            "src": "6628:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ACL_$7166",
                              "typeString": "contract ACL"
                            }
                          },
                          "id": 708,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "CREATE_PERMISSIONS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5880,
                          "src": "6628:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 709,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6628:29:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 702,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6591:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 704,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "grantPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6103,
                      "src": "6591:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 710,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6591:67:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 711,
                  "nodeType": "ExpressionStatement",
                  "src": "6591:67:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 715,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "6689:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 716,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6695:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 717,
                            "name": "acl",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 281,
                            "src": "6700:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ACL_$7166",
                              "typeString": "contract ACL"
                            }
                          },
                          "id": 718,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "CREATE_PERMISSIONS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5880,
                          "src": "6700:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 719,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6700:29:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        },
                        {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 712,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6668:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 714,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revokePermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6160,
                      "src": "6668:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 720,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6668:62:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 721,
                  "nodeType": "ExpressionStatement",
                  "src": "6668:62:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 725,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "6765:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 726,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6777:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 727,
                            "name": "acl",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 281,
                            "src": "6782:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ACL_$7166",
                              "typeString": "contract ACL"
                            }
                          },
                          "id": 728,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "CREATE_PERMISSIONS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5880,
                          "src": "6782:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 729,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6782:29:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 722,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6740:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 724,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setPermissionManager",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6180,
                      "src": "6740:24:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 730,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6740:72:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 731,
                  "nodeType": "ExpressionStatement",
                  "src": "6740:72:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 735,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "6842:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 736,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "6854:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 737,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "6868:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 738,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "MINT_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3810,
                          "src": "6868:22:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 739,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6868:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 732,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6822:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 734,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "grantPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6103,
                      "src": "6822:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 740,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6822:71:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 741,
                  "nodeType": "ExpressionStatement",
                  "src": "6822:71:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 745,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "6924:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 746,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "6930:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 747,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "6944:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 748,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "MINT_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3810,
                          "src": "6944:22:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 749,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6944:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 742,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6903:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 744,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revokePermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6160,
                      "src": "6903:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 750,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6903:66:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 751,
                  "nodeType": "ExpressionStatement",
                  "src": "6903:66:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 755,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "7004:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 756,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "7016:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 757,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "7030:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 758,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "MINT_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3810,
                          "src": "7030:22:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 759,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7030:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 752,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6979:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 754,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setPermissionManager",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6180,
                      "src": "6979:24:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 760,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6979:76:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 761,
                  "nodeType": "ExpressionStatement",
                  "src": "6979:76:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 763,
                        "name": "dao",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "7086:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      ],
                      "id": 762,
                      "name": "DeployInstance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 78,
                      "src": "7071:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 764,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7071:19:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 765,
                  "nodeType": "EmitStatement",
                  "src": "7066:24:0"
                }
              ]
            },
            "documentation": null,
            "id": 767,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "newInstance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 243,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 242,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 767,
                  "src": "2603:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                    "typeString": "contract MiniMeToken"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 241,
                    "name": "MiniMeToken",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3743,
                    "src": "2603:11:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                      "typeString": "contract MiniMeToken"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2602:19:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 244,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2631:0:0"
            },
            "scope": 768,
            "src": "2582:4515:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 769,
        "src": "1908:5191:0"
      }
    ],
    "src": "0:7100:0"
  },
  "legacyAST": {
    "absolutePath": "/Users/osarrouy/Documents/PandoNetwork/pando/packages/pando-kit/contracts/PandoKit.sol",
    "exportedSymbols": {
      "APMNamehash": [
        68
      ],
      "KitBase": [
        159
      ],
      "PandoKit": [
        768
      ]
    },
    "id": 769,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:0"
      },
      {
        "absolutePath": "@aragon/os/contracts/lib/ens/ENS.sol",
        "file": "@aragon/os/contracts/lib/ens/ENS.sol",
        "id": 2,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 11105,
        "src": "26:46:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/lib/ens/PublicResolver.sol",
        "file": "@aragon/os/contracts/lib/ens/PublicResolver.sol",
        "id": 3,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 11567,
        "src": "73:57:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/apm/Repo.sol",
        "file": "@aragon/os/contracts/apm/Repo.sol",
        "id": 4,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 8092,
        "src": "131:43:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/factory/DAOFactory.sol",
        "file": "@aragon/os/contracts/factory/DAOFactory.sol",
        "id": 5,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 10091,
        "src": "175:53:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/apps-shared-minime/contracts/MiniMeToken.sol",
        "file": "@aragon/apps-shared-minime/contracts/MiniMeToken.sol",
        "id": 6,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 3785,
        "src": "229:62:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/apps-vault/contracts/Vault.sol",
        "file": "@aragon/apps-vault/contracts/Vault.sol",
        "id": 7,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 4918,
        "src": "292:48:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/apps-finance/contracts/Finance.sol",
        "file": "@aragon/apps-finance/contracts/Finance.sol",
        "id": 8,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 2646,
        "src": "341:52:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/apps-voting/contracts/Voting.sol",
        "file": "@aragon/apps-voting/contracts/Voting.sol",
        "id": 9,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 5863,
        "src": "394:50:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@pando/colony/contracts/PandoColony.sol",
        "file": "@pando/colony/contracts/PandoColony.sol",
        "id": 11,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 12134,
        "src": "445:70:0",
        "symbolAliases": [
          {
            "foreign": 10,
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/apps-token-manager/contracts/TokenManager.sol",
        "file": "@aragon/apps-token-manager/contracts/TokenManager.sol",
        "id": 13,
        "nodeType": "ImportDirective",
        "scope": 769,
        "sourceUnit": 4664,
        "src": "516:85:0",
        "symbolAliases": [
          {
            "foreign": 12,
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 68,
        "linearizedBaseContracts": [
          68
        ],
        "name": "APMNamehash",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 23,
            "name": "ETH_NODE",
            "nodeType": "VariableDeclaration",
            "scope": 68,
            "src": "631:74:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 14,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "631:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 17,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "684:1:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      }
                    ],
                    "id": 16,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "676:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_bytes32_$",
                      "typeString": "type(bytes32)"
                    },
                    "typeName": "bytes32"
                  },
                  "id": 18,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "typeConversion",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "676:10:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "657468",
                      "id": 20,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "698:5:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0",
                        "typeString": "literal_string \"eth\""
                      },
                      "value": "eth"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_stringliteral_4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0",
                        "typeString": "literal_string \"eth\""
                      }
                    ],
                    "id": 19,
                    "name": "keccak256",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12664,
                    "src": "688:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                      "typeString": "function () pure returns (bytes32)"
                    }
                  },
                  "id": 21,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "688:16:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                ],
                "id": 15,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "666:9:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 22,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "666:39:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 31,
            "name": "APM_NODE",
            "nodeType": "VariableDeclaration",
            "scope": 68,
            "src": "711:77:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 24,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "711:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "id": 26,
                  "name": "ETH_NODE",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 23,
                  "src": "756:8:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "617261676f6e706d",
                      "id": 28,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "776:10:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_1542111b4698ac085139692eae7c6efb632a4ae2779f8686da94511ebbbff594",
                        "typeString": "literal_string \"aragonpm\""
                      },
                      "value": "aragonpm"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_stringliteral_1542111b4698ac085139692eae7c6efb632a4ae2779f8686da94511ebbbff594",
                        "typeString": "literal_string \"aragonpm\""
                      }
                    ],
                    "id": 27,
                    "name": "keccak256",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12664,
                    "src": "766:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                      "typeString": "function () pure returns (bytes32)"
                    }
                  },
                  "id": 29,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "766:21:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                ],
                "id": 25,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "746:9:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 30,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "746:42:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 39,
            "name": "OPEN_NODE",
            "nodeType": "VariableDeclaration",
            "scope": 68,
            "src": "794:74:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 32,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "794:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "id": 34,
                  "name": "APM_NODE",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 31,
                  "src": "840:8:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                {
                  "argumentTypes": null,
                  "arguments": [
                    {
                      "argumentTypes": null,
                      "hexValue": "6f70656e",
                      "id": 36,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "860:6:0",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_99f30275ab70dd1890c0789c4570632b6f0b0284d11c2d9e587d0368f7027018",
                        "typeString": "literal_string \"open\""
                      },
                      "value": "open"
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_stringliteral_99f30275ab70dd1890c0789c4570632b6f0b0284d11c2d9e587d0368f7027018",
                        "typeString": "literal_string \"open\""
                      }
                    ],
                    "id": 35,
                    "name": "keccak256",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12664,
                    "src": "850:9:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                      "typeString": "function () pure returns (bytes32)"
                    }
                  },
                  "id": 37,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "850:17:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                ],
                "id": 33,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "830:9:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 38,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "830:38:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 66,
              "nodeType": "Block",
              "src": "952:169:0",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 48,
                    "name": "open",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 43,
                    "src": "966:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 64,
                    "nodeType": "Block",
                    "src": "1047:68:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 58,
                              "name": "APM_NODE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 31,
                              "src": "1078:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 60,
                                  "name": "name",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 41,
                                  "src": "1098:4:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 59,
                                "name": "keccak256",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12664,
                                "src": "1088:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                                  "typeString": "function () pure returns (bytes32)"
                                }
                              },
                              "id": 61,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1088:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 57,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12664,
                            "src": "1068:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                              "typeString": "function () pure returns (bytes32)"
                            }
                          },
                          "id": 62,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1068:36:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "functionReturnParameters": 47,
                        "id": 63,
                        "nodeType": "Return",
                        "src": "1061:43:0"
                      }
                    ]
                  },
                  "id": 65,
                  "nodeType": "IfStatement",
                  "src": "962:153:0",
                  "trueBody": {
                    "id": 56,
                    "nodeType": "Block",
                    "src": "972:69:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 50,
                              "name": "OPEN_NODE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 39,
                              "src": "1003:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 52,
                                  "name": "name",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 41,
                                  "src": "1024:4:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 51,
                                "name": "keccak256",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12664,
                                "src": "1014:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                                  "typeString": "function () pure returns (bytes32)"
                                }
                              },
                              "id": 53,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1014:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 49,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12664,
                            "src": "993:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                              "typeString": "function () pure returns (bytes32)"
                            }
                          },
                          "id": 54,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "993:37:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "functionReturnParameters": 47,
                        "id": 55,
                        "nodeType": "Return",
                        "src": "986:44:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 67,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "apmNamehash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 44,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 67,
                  "src": "896:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 40,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "896:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43,
                  "name": "open",
                  "nodeType": "VariableDeclaration",
                  "scope": 67,
                  "src": "909:9:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 42,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "909:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "895:24:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 47,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 46,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 67,
                  "src": "943:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 45,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "943:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "942:9:0"
            },
            "scope": 68,
            "src": "875:246:0",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 769,
        "src": "604:519:0"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 69,
              "name": "APMNamehash",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 68,
              "src": "1146:11:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_APMNamehash_$68",
                "typeString": "contract APMNamehash"
              }
            },
            "id": 70,
            "nodeType": "InheritanceSpecifier",
            "src": "1146:11:0"
          }
        ],
        "contractDependencies": [
          68
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 159,
        "linearizedBaseContracts": [
          159,
          68
        ],
        "name": "KitBase",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 72,
            "name": "ens",
            "nodeType": "VariableDeclaration",
            "scope": 159,
            "src": "1164:21:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ENS_$11104",
              "typeString": "contract ENS"
            },
            "typeName": {
              "contractScope": null,
              "id": 71,
              "name": "ENS",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11104,
              "src": "1164:3:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ENS_$11104",
                "typeString": "contract ENS"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 74,
            "name": "fac",
            "nodeType": "VariableDeclaration",
            "scope": 159,
            "src": "1191:21:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_DAOFactory_$10090",
              "typeString": "contract DAOFactory"
            },
            "typeName": {
              "contractScope": null,
              "id": 73,
              "name": "DAOFactory",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10090,
              "src": "1191:10:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DAOFactory_$10090",
                "typeString": "contract DAOFactory"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 78,
            "name": "DeployInstance",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 77,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 76,
                  "indexed": false,
                  "name": "dao",
                  "nodeType": "VariableDeclaration",
                  "scope": 78,
                  "src": "1240:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 75,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1240:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1239:13:0"
            },
            "src": "1219:34:0"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 84,
            "name": "InstalledApp",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 83,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 80,
                  "indexed": false,
                  "name": "appProxy",
                  "nodeType": "VariableDeclaration",
                  "scope": 84,
                  "src": "1277:16:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 79,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1277:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 82,
                  "indexed": false,
                  "name": "appId",
                  "nodeType": "VariableDeclaration",
                  "scope": 84,
                  "src": "1295:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 81,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1295:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1276:33:0"
            },
            "src": "1258:52:0"
          },
          {
            "body": {
              "id": 126,
              "nodeType": "Block",
              "src": "1362:314:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 93,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 91,
                      "name": "ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 72,
                      "src": "1372:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$11104",
                        "typeString": "contract ENS"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 92,
                      "name": "_ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 88,
                      "src": "1378:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$11104",
                        "typeString": "contract ENS"
                      }
                    },
                    "src": "1372:10:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$11104",
                      "typeString": "contract ENS"
                    }
                  },
                  "id": 94,
                  "nodeType": "ExpressionStatement",
                  "src": "1372:10:0"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 101,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 96,
                          "name": "_fac",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 86,
                          "src": "1471:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DAOFactory_$10090",
                            "typeString": "contract DAOFactory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_DAOFactory_$10090",
                            "typeString": "contract DAOFactory"
                          }
                        ],
                        "id": 95,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "1463:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 97,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1463:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 99,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1488:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 98,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "1480:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 100,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1480:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1463:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 124,
                    "nodeType": "Block",
                    "src": "1635:35:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 122,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 120,
                            "name": "fac",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 74,
                            "src": "1649:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DAOFactory_$10090",
                              "typeString": "contract DAOFactory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 121,
                            "name": "_fac",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 86,
                            "src": "1655:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DAOFactory_$10090",
                              "typeString": "contract DAOFactory"
                            }
                          },
                          "src": "1649:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DAOFactory_$10090",
                            "typeString": "contract DAOFactory"
                          }
                        },
                        "id": 123,
                        "nodeType": "ExpressionStatement",
                        "src": "1649:10:0"
                      }
                    ]
                  },
                  "id": 125,
                  "nodeType": "IfStatement",
                  "src": "1459:211:0",
                  "trueBody": {
                    "id": 119,
                    "nodeType": "Block",
                    "src": "1492:137:0",
                    "statements": [
                      {
                        "assignments": [
                          103
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 103,
                            "name": "bareKit",
                            "nodeType": "VariableDeclaration",
                            "scope": 127,
                            "src": "1506:15:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 102,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "1506:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 108,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "626172652d6b6974",
                              "id": 105,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1536:10:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_eae34e1d5adf3d84ddaf56c05425677b54d69a021ff0c01c8b5f2289b91a4e9f",
                                "typeString": "literal_string \"bare-kit\""
                              },
                              "value": "bare-kit"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 106,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1548:5:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_eae34e1d5adf3d84ddaf56c05425677b54d69a021ff0c01c8b5f2289b91a4e9f",
                                "typeString": "literal_string \"bare-kit\""
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 104,
                            "name": "apmNamehash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 67,
                            "src": "1524:11:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_bytes32_$",
                              "typeString": "function (string memory,bool) pure returns (bytes32)"
                            }
                          },
                          "id": 107,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1524:30:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1506:48:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 117,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 109,
                            "name": "fac",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 74,
                            "src": "1568:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DAOFactory_$10090",
                              "typeString": "contract DAOFactory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 112,
                                        "name": "bareKit",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 103,
                                        "src": "1603:7:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 111,
                                      "name": "latestVersionAppBase",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 158,
                                      "src": "1582:20:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                        "typeString": "function (bytes32) view returns (address)"
                                      }
                                    },
                                    "id": 113,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1582:29:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 110,
                                  "name": "KitBase",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 159,
                                  "src": "1574:7:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_KitBase_$159_$",
                                    "typeString": "type(contract KitBase)"
                                  }
                                },
                                "id": 114,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1574:38:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_KitBase_$159",
                                  "typeString": "contract KitBase"
                                }
                              },
                              "id": 115,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "fac",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 74,
                              "src": "1574:42:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_DAOFactory_$10090_$",
                                "typeString": "function () view external returns (contract DAOFactory)"
                              }
                            },
                            "id": 116,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1574:44:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DAOFactory_$10090",
                              "typeString": "contract DAOFactory"
                            }
                          },
                          "src": "1568:50:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DAOFactory_$10090",
                            "typeString": "contract DAOFactory"
                          }
                        },
                        "id": 118,
                        "nodeType": "ExpressionStatement",
                        "src": "1568:50:0"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 127,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 89,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 86,
                  "name": "_fac",
                  "nodeType": "VariableDeclaration",
                  "scope": 127,
                  "src": "1328:15:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DAOFactory_$10090",
                    "typeString": "contract DAOFactory"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 85,
                    "name": "DAOFactory",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 10090,
                    "src": "1328:10:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DAOFactory_$10090",
                      "typeString": "contract DAOFactory"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 88,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 127,
                  "src": "1345:8:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ENS_$11104",
                    "typeString": "contract ENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 87,
                    "name": "ENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 11104,
                    "src": "1345:3:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$11104",
                      "typeString": "contract ENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1327:27:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 90,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1362:0:0"
            },
            "scope": 159,
            "src": "1316:360:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 157,
              "nodeType": "Block",
              "src": "1762:141:0",
              "statements": [
                {
                  "assignments": [
                    135
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 135,
                      "name": "repo",
                      "nodeType": "VariableDeclaration",
                      "scope": 158,
                      "src": "1772:9:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Repo_$8091",
                        "typeString": "contract Repo"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 134,
                        "name": "Repo",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 8091,
                        "src": "1772:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Repo_$8091",
                          "typeString": "contract Repo"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 147,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 144,
                            "name": "appId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 129,
                            "src": "1830:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 140,
                                    "name": "appId",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 129,
                                    "src": "1817:5:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 138,
                                    "name": "ens",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 72,
                                    "src": "1804:3:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_ENS_$11104",
                                      "typeString": "contract ENS"
                                    }
                                  },
                                  "id": 139,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "resolver",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 10989,
                                  "src": "1804:12:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                    "typeString": "function (bytes32) view external returns (address)"
                                  }
                                },
                                "id": 141,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1804:19:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 137,
                              "name": "PublicResolver",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 11566,
                              "src": "1789:14:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_PublicResolver_$11566_$",
                                "typeString": "type(contract PublicResolver)"
                              }
                            },
                            "id": 142,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1789:35:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PublicResolver_$11566",
                              "typeString": "contract PublicResolver"
                            }
                          },
                          "id": 143,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "addr",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 11272,
                          "src": "1789:40:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (bytes32) view external returns (address)"
                          }
                        },
                        "id": 145,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1789:47:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 136,
                      "name": "Repo",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8091,
                      "src": "1784:4:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Repo_$8091_$",
                        "typeString": "type(contract Repo)"
                      }
                    },
                    "id": 146,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1784:53:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Repo_$8091",
                      "typeString": "contract Repo"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1772:65:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 153,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        null,
                        {
                          "argumentTypes": null,
                          "id": 148,
                          "name": "base",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 132,
                          "src": "1849:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        null
                      ],
                      "id": 149,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "1847:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$_t_address_$__$",
                        "typeString": "tuple(,address,)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "id": 150,
                          "name": "repo",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 135,
                          "src": "1858:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Repo_$8091",
                            "typeString": "contract Repo"
                          }
                        },
                        "id": 151,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getLatest",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7895,
                        "src": "1858:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_uint16_$3_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$",
                          "typeString": "function () view external returns (uint16[3] memory,address,bytes memory)"
                        }
                      },
                      "id": 152,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1858:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_uint16_$3_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$",
                        "typeString": "tuple(uint16[3] memory,address,bytes memory)"
                      }
                    },
                    "src": "1847:27:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 154,
                  "nodeType": "ExpressionStatement",
                  "src": "1847:27:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 155,
                    "name": "base",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 132,
                    "src": "1892:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 133,
                  "id": 156,
                  "nodeType": "Return",
                  "src": "1885:11:0"
                }
              ]
            },
            "documentation": null,
            "id": 158,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "latestVersionAppBase",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 130,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 129,
                  "name": "appId",
                  "nodeType": "VariableDeclaration",
                  "scope": 158,
                  "src": "1712:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 128,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1712:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1711:15:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 133,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 132,
                  "name": "base",
                  "nodeType": "VariableDeclaration",
                  "scope": 158,
                  "src": "1748:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 131,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1748:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1747:14:0"
            },
            "scope": 159,
            "src": "1682:221:0",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 769,
        "src": "1126:779:0"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 160,
              "name": "KitBase",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 159,
              "src": "1929:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_KitBase_$159",
                "typeString": "contract KitBase"
              }
            },
            "id": 161,
            "nodeType": "InheritanceSpecifier",
            "src": "1929:7:0"
          }
        ],
        "contractDependencies": [
          68,
          159
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 768,
        "linearizedBaseContracts": [
          768,
          159,
          68
        ],
        "name": "PandoKit",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 163,
            "name": "devchain",
            "nodeType": "VariableDeclaration",
            "scope": 768,
            "src": "1943:13:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 162,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "1943:4:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 165,
            "name": "tokenFactory",
            "nodeType": "VariableDeclaration",
            "scope": 768,
            "src": "1962:31:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
              "typeString": "contract MiniMeTokenFactory"
            },
            "typeName": {
              "contractScope": null,
              "id": 164,
              "name": "MiniMeTokenFactory",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3784,
              "src": "1962:18:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
                "typeString": "contract MiniMeTokenFactory"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 170,
            "name": "PCT",
            "nodeType": "VariableDeclaration",
            "scope": 768,
            "src": "2000:31:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 166,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2000:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "commonType": {
                "typeIdentifier": "t_rational_10000000000000000_by_1",
                "typeString": "int_const 10000000000000000"
              },
              "id": 169,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "leftExpression": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 167,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "2023:2:0",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_10_by_1",
                  "typeString": "int_const 10"
                },
                "value": "10"
              },
              "nodeType": "BinaryOperation",
              "operator": "**",
              "rightExpression": {
                "argumentTypes": null,
                "hexValue": "3136",
                "id": 168,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "2029:2:0",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_16_by_1",
                  "typeString": "int_const 16"
                },
                "value": "16"
              },
              "src": "2023:8:0",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_10000000000000000_by_1",
                "typeString": "int_const 10000000000000000"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 176,
            "name": "ANY_ENTITY",
            "nodeType": "VariableDeclaration",
            "scope": 768,
            "src": "2037:41:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 171,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "2037:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "id": 174,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "nodeType": "UnaryOperation",
                  "operator": "-",
                  "prefix": true,
                  "src": "2075:2:0",
                  "subExpression": {
                    "argumentTypes": null,
                    "hexValue": "31",
                    "id": 173,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2076:1:0",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_1_by_1",
                      "typeString": "int_const 1"
                    },
                    "value": "1"
                  },
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_-1_by_1",
                    "typeString": "int_const -1"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_-1_by_1",
                    "typeString": "int_const -1"
                  }
                ],
                "id": 172,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "2067:7:0",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": "address"
              },
              "id": 175,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "2067:11:0",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 184,
            "name": "DeployToken",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 183,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 178,
                  "indexed": false,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 184,
                  "src": "2103:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 177,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2103:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 180,
                  "indexed": false,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 184,
                  "src": "2118:11:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 179,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2118:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 182,
                  "indexed": false,
                  "name": "symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 184,
                  "src": "2131:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 181,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2131:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2102:43:0"
            },
            "src": "2085:61:0"
          },
          {
            "body": {
              "id": 207,
              "nodeType": "Block",
              "src": "2260:75:0",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 201,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 199,
                      "name": "devchain",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 163,
                      "src": "2270:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 200,
                      "name": "_devchain",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 190,
                      "src": "2281:9:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2270:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 202,
                  "nodeType": "ExpressionStatement",
                  "src": "2270:20:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 205,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 203,
                      "name": "tokenFactory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 165,
                      "src": "2300:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
                        "typeString": "contract MiniMeTokenFactory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 204,
                      "name": "_tokenFactory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 188,
                      "src": "2315:13:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
                        "typeString": "contract MiniMeTokenFactory"
                      }
                    },
                    "src": "2300:28:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
                      "typeString": "contract MiniMeTokenFactory"
                    }
                  },
                  "id": 206,
                  "nodeType": "ExpressionStatement",
                  "src": "2300:28:0"
                }
              ]
            },
            "documentation": null,
            "id": 208,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 194,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2250:1:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 193,
                      "name": "DAOFactory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10090,
                      "src": "2239:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_DAOFactory_$10090_$",
                        "typeString": "type(contract DAOFactory)"
                      }
                    },
                    "id": 195,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2239:13:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DAOFactory_$10090",
                      "typeString": "contract DAOFactory"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 196,
                    "name": "_ens",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 186,
                    "src": "2254:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$11104",
                      "typeString": "contract ENS"
                    }
                  }
                ],
                "id": 197,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 192,
                  "name": "KitBase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 159,
                  "src": "2231:7:0",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_KitBase_$159_$",
                    "typeString": "type(contract KitBase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2231:28:0"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 191,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 186,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 208,
                  "src": "2164:8:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ENS_$11104",
                    "typeString": "contract ENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 185,
                    "name": "ENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 11104,
                    "src": "2164:3:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$11104",
                      "typeString": "contract ENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 188,
                  "name": "_tokenFactory",
                  "nodeType": "VariableDeclaration",
                  "scope": 208,
                  "src": "2174:32:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
                    "typeString": "contract MiniMeTokenFactory"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 187,
                    "name": "MiniMeTokenFactory",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3784,
                    "src": "2174:18:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
                      "typeString": "contract MiniMeTokenFactory"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 190,
                  "name": "_devchain",
                  "nodeType": "VariableDeclaration",
                  "scope": 208,
                  "src": "2208:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 189,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2208:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2163:60:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 198,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2260:0:0"
            },
            "scope": 768,
            "src": "2152:183:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 239,
              "nodeType": "Block",
              "src": "2398:178:0",
              "statements": [
                {
                  "assignments": [
                    216
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 216,
                      "name": "token",
                      "nodeType": "VariableDeclaration",
                      "scope": 240,
                      "src": "2408:17:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                        "typeString": "contract MiniMeToken"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 215,
                        "name": "MiniMeToken",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3743,
                        "src": "2408:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 230,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 221,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2478:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 220,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2470:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 222,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2470:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 219,
                          "name": "MiniMeToken",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3743,
                          "src": "2458:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$3743_$",
                            "typeString": "type(contract MiniMeToken)"
                          }
                        },
                        "id": 223,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2458:23:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 224,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2483:1:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "id": 225,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 210,
                        "src": "2486:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 226,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2493:1:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "id": 227,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 212,
                        "src": "2496:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 228,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2505:4:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 217,
                        "name": "tokenFactory",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 165,
                        "src": "2428:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MiniMeTokenFactory_$3784",
                          "typeString": "contract MiniMeTokenFactory"
                        }
                      },
                      "id": 218,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createCloneToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3783,
                      "src": "2428:29:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_contract$_MiniMeToken_$3743_$_t_uint256_$_t_string_memory_ptr_$_t_uint8_$_t_string_memory_ptr_$_t_bool_$returns$_t_contract$_MiniMeToken_$3743_$",
                        "typeString": "function (contract MiniMeToken,uint256,string memory,uint8,string memory,bool) external returns (contract MiniMeToken)"
                      }
                    },
                    "id": 229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2428:82:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                      "typeString": "contract MiniMeToken"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2408:102:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 233,
                            "name": "token",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 216,
                            "src": "2546:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                              "typeString": "contract MiniMeToken"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                              "typeString": "contract MiniMeToken"
                            }
                          ],
                          "id": 232,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2538:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 234,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2538:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 235,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 210,
                        "src": "2554:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 236,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 212,
                        "src": "2561:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 231,
                      "name": "DeployToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 184,
                      "src": "2526:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (address,string memory,string memory)"
                      }
                    },
                    "id": 237,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2526:43:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 238,
                  "nodeType": "EmitStatement",
                  "src": "2521:48:0"
                }
              ]
            },
            "documentation": null,
            "id": 240,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "newToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 213,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 210,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 240,
                  "src": "2359:12:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 209,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2359:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 212,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 240,
                  "src": "2373:14:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 211,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2373:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2358:30:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 214,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2398:0:0"
            },
            "scope": 768,
            "src": "2341:235:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 766,
              "nodeType": "Block",
              "src": "2631:4466:0",
              "statements": [
                {
                  "assignments": [
                    249
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 249,
                      "name": "appIds",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "2641:24:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                        "typeString": "bytes32[5]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 247,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2641:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 248,
                        "length": {
                          "argumentTypes": null,
                          "hexValue": "35",
                          "id": 246,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2649:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          },
                          "value": "5"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "2641:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$5_storage_ptr",
                          "typeString": "bytes32[5]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 272,
                  "initialValue": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "7661756c74",
                            "id": 251,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2694:7:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_23c14fceac7676b670aa56866076586ea1ce15ddcf19208ec6346cf748dffbee",
                              "typeString": "literal_string \"vault\""
                            },
                            "value": "vault"
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 252,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2703:5:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_23c14fceac7676b670aa56866076586ea1ce15ddcf19208ec6346cf748dffbee",
                              "typeString": "literal_string \"vault\""
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 250,
                          "name": "apmNamehash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 67,
                          "src": "2682:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_bytes32_$",
                            "typeString": "function (string memory,bool) pure returns (bytes32)"
                          }
                        },
                        "id": 253,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2682:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "66696e616e6365",
                            "id": 255,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2751:9:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_2af4c2fb0d9965fa818b9c58b2744b328ab67b082ec92907629457399dacdb35",
                              "typeString": "literal_string \"finance\""
                            },
                            "value": "finance"
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 256,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2762:5:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_2af4c2fb0d9965fa818b9c58b2744b328ab67b082ec92907629457399dacdb35",
                              "typeString": "literal_string \"finance\""
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 254,
                          "name": "apmNamehash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 67,
                          "src": "2739:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_bytes32_$",
                            "typeString": "function (string memory,bool) pure returns (bytes32)"
                          }
                        },
                        "id": 257,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2739:29:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "746f6b656e2d6d616e61676572",
                            "id": 259,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2808:15:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_de5fa9c0ef6d18cdb8ef4461bfb45c94dc915629a2a1f311fb33838aff95436f",
                              "typeString": "literal_string \"token-manager\""
                            },
                            "value": "token-manager"
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 260,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2825:5:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_de5fa9c0ef6d18cdb8ef4461bfb45c94dc915629a2a1f311fb33838aff95436f",
                              "typeString": "literal_string \"token-manager\""
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 258,
                          "name": "apmNamehash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 67,
                          "src": "2796:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_bytes32_$",
                            "typeString": "function (string memory,bool) pure returns (bytes32)"
                          }
                        },
                        "id": 261,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2796:35:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "766f74696e67",
                            "id": 263,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2865:8:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_0e49311626a26ba5be58a3b13d239908e80ce0dffdd5c50bf1d9c82ff35d1ab3",
                              "typeString": "literal_string \"voting\""
                            },
                            "value": "voting"
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 264,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2875:5:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_0e49311626a26ba5be58a3b13d239908e80ce0dffdd5c50bf1d9c82ff35d1ab3",
                              "typeString": "literal_string \"voting\""
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 262,
                          "name": "apmNamehash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 67,
                          "src": "2853:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_bytes32_$",
                            "typeString": "function (string memory,bool) pure returns (bytes32)"
                          }
                        },
                        "id": 265,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2853:28:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "70616e646f2d636f6c6f6e79",
                            "id": 267,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2922:14:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_39fdfce5f61008c6306b497a2146ae2105fed6d2c6c32e9325a73fce867e5af1",
                              "typeString": "literal_string \"pando-colony\""
                            },
                            "value": "pando-colony"
                          },
                          {
                            "argumentTypes": null,
                            "id": 269,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "!",
                            "prefix": true,
                            "src": "2938:9:0",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 268,
                              "name": "devchain",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 163,
                              "src": "2939:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_39fdfce5f61008c6306b497a2146ae2105fed6d2c6c32e9325a73fce867e5af1",
                              "typeString": "literal_string \"pando-colony\""
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "id": 266,
                          "name": "apmNamehash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 67,
                          "src": "2910:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_bytes32_$",
                            "typeString": "function (string memory,bool) pure returns (bytes32)"
                          }
                        },
                        "id": 270,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2910:38:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "id": 271,
                    "isConstant": false,
                    "isInlineArray": true,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "2668:296:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                      "typeString": "bytes32[5] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2641:323:0"
                },
                {
                  "assignments": [
                    274
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 274,
                      "name": "dao",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "2990:10:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Kernel_$10747",
                        "typeString": "contract Kernel"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 273,
                        "name": "Kernel",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 10747,
                        "src": "2990:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 279,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 277,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "3014:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 275,
                        "name": "fac",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 74,
                        "src": "3003:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_DAOFactory_$10090",
                          "typeString": "contract DAOFactory"
                        }
                      },
                      "id": 276,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "newDAO",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10089,
                      "src": "3003:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_contract$_Kernel_$10747_$",
                        "typeString": "function (address) external returns (contract Kernel)"
                      }
                    },
                    "id": 278,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3003:16:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Kernel_$10747",
                      "typeString": "contract Kernel"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2990:29:0"
                },
                {
                  "assignments": [
                    281
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 281,
                      "name": "acl",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "3029:10:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ACL_$7166",
                        "typeString": "contract ACL"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 280,
                        "name": "ACL",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7166,
                        "src": "3029:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 287,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 283,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "3046:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 284,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "acl",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10609,
                          "src": "3046:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IACL_$7681_$",
                            "typeString": "function () view external returns (contract IACL)"
                          }
                        },
                        "id": 285,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3046:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IACL_$7681",
                          "typeString": "contract IACL"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IACL_$7681",
                          "typeString": "contract IACL"
                        }
                      ],
                      "id": 282,
                      "name": "ACL",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7166,
                      "src": "3042:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_ACL_$7166_$",
                        "typeString": "type(contract ACL)"
                      }
                    },
                    "id": 286,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3042:14:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ACL_$7166",
                      "typeString": "contract ACL"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3029:27:0"
                },
                {
                  "assignments": [
                    289
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 289,
                      "name": "reg",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "3066:21:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                        "typeString": "contract EVMScriptRegistry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 288,
                        "name": "EVMScriptRegistry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 9287,
                        "src": "3066:17:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 295,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 291,
                            "name": "acl",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 281,
                            "src": "3108:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ACL_$7166",
                              "typeString": "contract ACL"
                            }
                          },
                          "id": 292,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getEVMScriptRegistry",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 9356,
                          "src": "3108:24:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IEVMScriptRegistry_$9523_$",
                            "typeString": "function () view external returns (contract IEVMScriptRegistry)"
                          }
                        },
                        "id": 293,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3108:26:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IEVMScriptRegistry_$9523",
                          "typeString": "contract IEVMScriptRegistry"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IEVMScriptRegistry_$9523",
                          "typeString": "contract IEVMScriptRegistry"
                        }
                      ],
                      "id": 290,
                      "name": "EVMScriptRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9287,
                      "src": "3090:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_EVMScriptRegistry_$9287_$",
                        "typeString": "type(contract EVMScriptRegistry)"
                      }
                    },
                    "id": 294,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3090:45:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                      "typeString": "contract EVMScriptRegistry"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3066:69:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 299,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "3166:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 300,
                        "name": "dao",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "3172:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 301,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "3177:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 302,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "APP_MANAGER_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10281,
                          "src": "3177:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 303,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3177:22:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 304,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "3201:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        },
                        {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 296,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "3145:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 298,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "3145:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 305,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3145:61:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 306,
                  "nodeType": "ExpressionStatement",
                  "src": "3145:61:0"
                },
                {
                  "assignments": [
                    308
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 308,
                      "name": "vault",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "3233:11:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Vault_$4917",
                        "typeString": "contract Vault"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 307,
                        "name": "Vault",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4917,
                        "src": "3233:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 327,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 312,
                              "name": "appIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 249,
                              "src": "3302:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                "typeString": "bytes32[5] memory"
                              }
                            },
                            "id": 314,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 313,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3309:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3302:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 316,
                                  "name": "appIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 249,
                                  "src": "3350:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                    "typeString": "bytes32[5] memory"
                                  }
                                },
                                "id": 318,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 317,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "3357:1:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "3350:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 315,
                              "name": "latestVersionAppBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 158,
                              "src": "3329:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view returns (address)"
                              }
                            },
                            "id": 319,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3329:31:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 322,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3388:1:0",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 321,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "3378:9:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$",
                                "typeString": "function (uint256) pure returns (bytes memory)"
                              },
                              "typeName": {
                                "id": 320,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "3382:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_storage_ptr",
                                  "typeString": "bytes"
                                }
                              }
                            },
                            "id": 323,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3378:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 324,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3408:4:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 310,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "3266:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 311,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "newAppInstance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10417,
                          "src": "3266:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_contract$_ERCProxy_$11872_$",
                            "typeString": "function (bytes32,address,bytes memory,bool) external returns (contract ERCProxy)"
                          }
                        },
                        "id": 325,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3266:160:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      ],
                      "id": 309,
                      "name": "Vault",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4917,
                      "src": "3247:5:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Vault_$4917_$",
                        "typeString": "type(contract Vault)"
                      }
                    },
                    "id": 326,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3247:189:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Vault_$4917",
                      "typeString": "contract Vault"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3233:203:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 329,
                        "name": "vault",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 308,
                        "src": "3464:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 330,
                          "name": "appIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 249,
                          "src": "3471:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                            "typeString": "bytes32[5] memory"
                          }
                        },
                        "id": 332,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 331,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3478:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3471:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 328,
                      "name": "InstalledApp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 84,
                      "src": "3451:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 333,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3451:30:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 334,
                  "nodeType": "EmitStatement",
                  "src": "3446:35:0"
                },
                {
                  "assignments": [
                    336
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 336,
                      "name": "finance",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "3492:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Finance_$2645",
                        "typeString": "contract Finance"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 335,
                        "name": "Finance",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2645,
                        "src": "3492:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 350,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 340,
                              "name": "appIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 249,
                              "src": "3567:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                "typeString": "bytes32[5] memory"
                              }
                            },
                            "id": 342,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 341,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3574:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3567:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 344,
                                  "name": "appIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 249,
                                  "src": "3615:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                    "typeString": "bytes32[5] memory"
                                  }
                                },
                                "id": 346,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 345,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "3622:1:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "3615:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 343,
                              "name": "latestVersionAppBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 158,
                              "src": "3594:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view returns (address)"
                              }
                            },
                            "id": 347,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3594:31:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 338,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "3531:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 339,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "newAppInstance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10373,
                          "src": "3531:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_ERCProxy_$11872_$",
                            "typeString": "function (bytes32,address) external returns (contract ERCProxy)"
                          }
                        },
                        "id": 348,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3531:108:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      ],
                      "id": 337,
                      "name": "Finance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2645,
                      "src": "3510:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Finance_$2645_$",
                        "typeString": "type(contract Finance)"
                      }
                    },
                    "id": 349,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3510:139:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Finance_$2645",
                      "typeString": "contract Finance"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3492:157:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 352,
                        "name": "finance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 336,
                        "src": "3677:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 353,
                          "name": "appIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 249,
                          "src": "3686:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                            "typeString": "bytes32[5] memory"
                          }
                        },
                        "id": 355,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 354,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3693:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3686:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 351,
                      "name": "InstalledApp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 84,
                      "src": "3664:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 356,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3664:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 357,
                  "nodeType": "EmitStatement",
                  "src": "3659:37:0"
                },
                {
                  "assignments": [
                    359
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 359,
                      "name": "tokenManager",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "3707:25:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_TokenManager_$4663",
                        "typeString": "contract TokenManager"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 358,
                        "name": "TokenManager",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4663,
                        "src": "3707:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 373,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 363,
                              "name": "appIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 249,
                              "src": "3797:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                "typeString": "bytes32[5] memory"
                              }
                            },
                            "id": 365,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "32",
                              "id": 364,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3804:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_2_by_1",
                                "typeString": "int_const 2"
                              },
                              "value": "2"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3797:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 367,
                                  "name": "appIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 249,
                                  "src": "3845:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                    "typeString": "bytes32[5] memory"
                                  }
                                },
                                "id": 369,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "32",
                                  "id": 368,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "3852:1:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  },
                                  "value": "2"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "3845:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 366,
                              "name": "latestVersionAppBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 158,
                              "src": "3824:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view returns (address)"
                              }
                            },
                            "id": 370,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3824:31:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 361,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "3761:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 362,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "newAppInstance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10373,
                          "src": "3761:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_ERCProxy_$11872_$",
                            "typeString": "function (bytes32,address) external returns (contract ERCProxy)"
                          }
                        },
                        "id": 371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3761:108:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      ],
                      "id": 360,
                      "name": "TokenManager",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4663,
                      "src": "3735:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_TokenManager_$4663_$",
                        "typeString": "type(contract TokenManager)"
                      }
                    },
                    "id": 372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3735:144:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_TokenManager_$4663",
                      "typeString": "contract TokenManager"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3707:172:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 375,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "3907:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 376,
                          "name": "appIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 249,
                          "src": "3921:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                            "typeString": "bytes32[5] memory"
                          }
                        },
                        "id": 378,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "32",
                          "id": 377,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3928:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2_by_1",
                            "typeString": "int_const 2"
                          },
                          "value": "2"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3921:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 374,
                      "name": "InstalledApp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 84,
                      "src": "3894:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 379,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3894:37:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 380,
                  "nodeType": "EmitStatement",
                  "src": "3889:42:0"
                },
                {
                  "assignments": [
                    382
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 382,
                      "name": "metavoting",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "3942:17:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Voting_$5862",
                        "typeString": "contract Voting"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 381,
                        "name": "Voting",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5862,
                        "src": "3942:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 396,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 386,
                              "name": "appIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 249,
                              "src": "4018:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                "typeString": "bytes32[5] memory"
                              }
                            },
                            "id": 388,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "33",
                              "id": 387,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4025:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_3_by_1",
                                "typeString": "int_const 3"
                              },
                              "value": "3"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4018:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 390,
                                  "name": "appIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 249,
                                  "src": "4066:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                    "typeString": "bytes32[5] memory"
                                  }
                                },
                                "id": 392,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "33",
                                  "id": 391,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4073:1:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_3_by_1",
                                    "typeString": "int_const 3"
                                  },
                                  "value": "3"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "4066:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 389,
                              "name": "latestVersionAppBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 158,
                              "src": "4045:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view returns (address)"
                              }
                            },
                            "id": 393,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4045:31:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 384,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "3982:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 385,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "newAppInstance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10373,
                          "src": "3982:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_ERCProxy_$11872_$",
                            "typeString": "function (bytes32,address) external returns (contract ERCProxy)"
                          }
                        },
                        "id": 394,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3982:108:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      ],
                      "id": 383,
                      "name": "Voting",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5862,
                      "src": "3962:6:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Voting_$5862_$",
                        "typeString": "type(contract Voting)"
                      }
                    },
                    "id": 395,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3962:138:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Voting_$5862",
                      "typeString": "contract Voting"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3942:158:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 398,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4128:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 399,
                          "name": "appIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 249,
                          "src": "4140:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                            "typeString": "bytes32[5] memory"
                          }
                        },
                        "id": 401,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "33",
                          "id": 400,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4147:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_3_by_1",
                            "typeString": "int_const 3"
                          },
                          "value": "3"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4140:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 397,
                      "name": "InstalledApp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 84,
                      "src": "4115:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 402,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4115:35:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 403,
                  "nodeType": "EmitStatement",
                  "src": "4110:40:0"
                },
                {
                  "assignments": [
                    405
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 405,
                      "name": "colony",
                      "nodeType": "VariableDeclaration",
                      "scope": 767,
                      "src": "4161:18:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PandoColony_$12133",
                        "typeString": "contract PandoColony"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 404,
                        "name": "PandoColony",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 12133,
                        "src": "4161:11:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 419,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 409,
                              "name": "appIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 249,
                              "src": "4243:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                "typeString": "bytes32[5] memory"
                              }
                            },
                            "id": 411,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "34",
                              "id": 410,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4250:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_4_by_1",
                                "typeString": "int_const 4"
                              },
                              "value": "4"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4243:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 413,
                                  "name": "appIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 249,
                                  "src": "4291:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                                    "typeString": "bytes32[5] memory"
                                  }
                                },
                                "id": 415,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "34",
                                  "id": 414,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4298:1:0",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_4_by_1",
                                    "typeString": "int_const 4"
                                  },
                                  "value": "4"
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "4291:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 412,
                              "name": "latestVersionAppBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 158,
                              "src": "4270:20:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view returns (address)"
                              }
                            },
                            "id": 416,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4270:31:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 407,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "4207:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "newAppInstance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10373,
                          "src": "4207:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_ERCProxy_$11872_$",
                            "typeString": "function (bytes32,address) external returns (contract ERCProxy)"
                          }
                        },
                        "id": 417,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4207:108:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      ],
                      "id": 406,
                      "name": "PandoColony",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12133,
                      "src": "4182:11:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_PandoColony_$12133_$",
                        "typeString": "type(contract PandoColony)"
                      }
                    },
                    "id": 418,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4182:143:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PandoColony_$12133",
                      "typeString": "contract PandoColony"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4161:164:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 421,
                        "name": "colony",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 405,
                        "src": "4353:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 422,
                          "name": "appIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 249,
                          "src": "4361:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$5_memory_ptr",
                            "typeString": "bytes32[5] memory"
                          }
                        },
                        "id": 424,
                        "indexExpression": {
                          "argumentTypes": null,
                          "hexValue": "34",
                          "id": 423,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4368:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_4_by_1",
                            "typeString": "int_const 4"
                          },
                          "value": "4"
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4361:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 420,
                      "name": "InstalledApp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 84,
                      "src": "4340:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 425,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4340:31:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 426,
                  "nodeType": "EmitStatement",
                  "src": "4335:36:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 430,
                        "name": "colony",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 405,
                        "src": "4425:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 431,
                        "name": "dao",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "4433:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 432,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "4438:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 433,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "APP_MANAGER_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10281,
                          "src": "4438:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 434,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4438:22:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        },
                        {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 427,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4405:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 429,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "grantPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6103,
                      "src": "4405:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4405:56:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 436,
                  "nodeType": "ExpressionStatement",
                  "src": "4405:56:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 440,
                        "name": "colony",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 405,
                        "src": "4491:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 441,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4499:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 442,
                            "name": "acl",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 281,
                            "src": "4504:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ACL_$7166",
                              "typeString": "contract ACL"
                            }
                          },
                          "id": 443,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "CREATE_PERMISSIONS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5880,
                          "src": "4504:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 444,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4504:29:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        },
                        {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 437,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4471:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 439,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "grantPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6103,
                      "src": "4471:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 445,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4471:63:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 446,
                  "nodeType": "ExpressionStatement",
                  "src": "4471:63:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 450,
                        "name": "finance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 336,
                        "src": "4565:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 451,
                        "name": "vault",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 308,
                        "src": "4574:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 452,
                            "name": "vault",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 308,
                            "src": "4581:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Vault_$4917",
                              "typeString": "contract Vault"
                            }
                          },
                          "id": 453,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "TRANSFER_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4680,
                          "src": "4581:19:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 454,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4581:21:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 455,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4604:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        },
                        {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 447,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4544:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 449,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "4544:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 456,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4544:71:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 457,
                  "nodeType": "ExpressionStatement",
                  "src": "4544:71:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 461,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4646:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 462,
                        "name": "finance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 336,
                        "src": "4658:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 463,
                            "name": "finance",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 336,
                            "src": "4667:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Finance_$2645",
                              "typeString": "contract Finance"
                            }
                          },
                          "id": 464,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "CREATE_PAYMENTS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 860,
                          "src": "4667:28:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 465,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4667:30:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 466,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4699:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 458,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4625:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 460,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "4625:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4625:85:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 468,
                  "nodeType": "ExpressionStatement",
                  "src": "4625:85:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 472,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4741:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 473,
                        "name": "finance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 336,
                        "src": "4753:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 474,
                            "name": "finance",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 336,
                            "src": "4762:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Finance_$2645",
                              "typeString": "contract Finance"
                            }
                          },
                          "id": 475,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "EXECUTE_PAYMENTS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 875,
                          "src": "4762:29:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 476,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4762:31:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 477,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4795:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 469,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4720:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 471,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "4720:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 478,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4720:86:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 479,
                  "nodeType": "ExpressionStatement",
                  "src": "4720:86:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 483,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4837:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 484,
                        "name": "finance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 336,
                        "src": "4849:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 485,
                            "name": "finance",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 336,
                            "src": "4858:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Finance_$2645",
                              "typeString": "contract Finance"
                            }
                          },
                          "id": 486,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "MANAGE_PAYMENTS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 880,
                          "src": "4858:28:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 487,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4858:30:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 488,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "4890:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 480,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4816:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 482,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "4816:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 489,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4816:85:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 490,
                  "nodeType": "ExpressionStatement",
                  "src": "4816:85:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 494,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "4932:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 495,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "4938:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 496,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "4952:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 497,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "MINT_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3810,
                          "src": "4952:22:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 498,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4952:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 499,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "4978:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 491,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4911:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 493,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "4911:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 500,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4911:72:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 501,
                  "nodeType": "ExpressionStatement",
                  "src": "4911:72:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 505,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5014:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 506,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "5026:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 507,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "5040:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 508,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "ISSUE_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3815,
                          "src": "5040:23:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 509,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5040:25:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 510,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5067:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 502,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "4993:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 504,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "4993:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 511,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4993:85:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 512,
                  "nodeType": "ExpressionStatement",
                  "src": "4993:85:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 516,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5109:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 517,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "5121:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 518,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "5135:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 519,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "ASSIGN_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3820,
                          "src": "5135:24:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 520,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5135:26:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 521,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5163:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 513,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5088:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 515,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5088:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 522,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5088:86:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 523,
                  "nodeType": "ExpressionStatement",
                  "src": "5088:86:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 527,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5205:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 528,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "5217:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 529,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "5231:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 530,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "REVOKE_VESTINGS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3825,
                          "src": "5231:33:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 531,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5231:35:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 532,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5268:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 524,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5184:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 526,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5184:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 533,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5184:95:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 534,
                  "nodeType": "ExpressionStatement",
                  "src": "5184:95:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 538,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5310:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 539,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "5322:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 540,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "5336:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 541,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "BURN_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3830,
                          "src": "5336:22:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 542,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5336:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 543,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5362:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 535,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5289:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 537,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5289:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 544,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5289:84:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 545,
                  "nodeType": "ExpressionStatement",
                  "src": "5289:84:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 549,
                        "name": "ANY_ENTITY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 176,
                        "src": "5404:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 550,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5416:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 551,
                            "name": "metavoting",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 382,
                            "src": "5428:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Voting_$5862",
                              "typeString": "contract Voting"
                            }
                          },
                          "id": 552,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "CREATE_VOTES_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4939,
                          "src": "5428:28:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 553,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5428:30:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 554,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5460:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 546,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5383:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 548,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5383:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 555,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5383:88:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 556,
                  "nodeType": "ExpressionStatement",
                  "src": "5383:88:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 560,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5502:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 561,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5514:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 562,
                            "name": "metavoting",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 382,
                            "src": "5526:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Voting_$5862",
                              "typeString": "contract Voting"
                            }
                          },
                          "id": 563,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "MODIFY_SUPPORT_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4944,
                          "src": "5526:30:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 564,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5526:32:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 565,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5560:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 557,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5481:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 559,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5481:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 566,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5481:90:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 567,
                  "nodeType": "ExpressionStatement",
                  "src": "5481:90:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 571,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5602:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 572,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5614:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 573,
                            "name": "metavoting",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 382,
                            "src": "5626:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Voting_$5862",
                              "typeString": "contract Voting"
                            }
                          },
                          "id": 574,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "MODIFY_QUORUM_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4949,
                          "src": "5626:29:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 575,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5626:31:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 576,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5659:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 568,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5581:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 570,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5581:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 577,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5581:89:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 578,
                  "nodeType": "ExpressionStatement",
                  "src": "5581:89:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 582,
                        "name": "ANY_ENTITY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 176,
                        "src": "5701:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 583,
                        "name": "colony",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 405,
                        "src": "5713:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 584,
                            "name": "colony",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 405,
                            "src": "5721:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PandoColony_$12133",
                              "typeString": "contract PandoColony"
                            }
                          },
                          "id": 585,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "CREATE_REPOSITORY_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 11957,
                          "src": "5721:29:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 586,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5721:31:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 587,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5754:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 579,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5680:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 581,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5680:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 588,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5680:85:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 589,
                  "nodeType": "ExpressionStatement",
                  "src": "5680:85:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 593,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5796:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 594,
                        "name": "reg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 289,
                        "src": "5808:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 595,
                            "name": "reg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 289,
                            "src": "5813:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                              "typeString": "contract EVMScriptRegistry"
                            }
                          },
                          "id": 596,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "REGISTRY_ADD_EXECUTOR_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 9084,
                          "src": "5813:30:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 597,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5813:32:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 598,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5847:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 590,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5775:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 592,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5775:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 599,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5775:83:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 600,
                  "nodeType": "ExpressionStatement",
                  "src": "5775:83:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 604,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5889:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 605,
                        "name": "reg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 289,
                        "src": "5901:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 606,
                            "name": "reg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 289,
                            "src": "5906:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                              "typeString": "contract EVMScriptRegistry"
                            }
                          },
                          "id": 607,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "REGISTRY_MANAGER_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 9087,
                          "src": "5906:25:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 608,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5906:27:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 609,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "5935:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 601,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "5868:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 603,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "5868:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 610,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5868:78:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 611,
                  "nodeType": "ExpressionStatement",
                  "src": "5868:78:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 615,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "6007:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 612,
                        "name": "token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 242,
                        "src": "5984:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        }
                      },
                      "id": 614,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "changeController",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2714,
                      "src": "5984:22:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 616,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5984:36:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 617,
                  "nodeType": "ExpressionStatement",
                  "src": "5984:36:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 618,
                        "name": "vault",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 308,
                        "src": "6030:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        }
                      },
                      "id": 620,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4754,
                      "src": "6030:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 621,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6030:18:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 622,
                  "nodeType": "ExpressionStatement",
                  "src": "6030:18:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 626,
                        "name": "vault",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 308,
                        "src": "6077:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "3330",
                        "id": 627,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6084:7:0",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2592000_by_1",
                          "typeString": "int_const 2592000"
                        },
                        "value": "30"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Vault_$4917",
                          "typeString": "contract Vault"
                        },
                        {
                          "typeIdentifier": "t_rational_2592000_by_1",
                          "typeString": "int_const 2592000"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 623,
                        "name": "finance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 336,
                        "src": "6058:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Finance_$2645",
                          "typeString": "contract Finance"
                        }
                      },
                      "id": 625,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1232,
                      "src": "6058:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Vault_$4917_$_t_uint64_$returns$__$",
                        "typeString": "function (contract Vault,uint64) external"
                      }
                    },
                    "id": 628,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6058:34:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 629,
                  "nodeType": "ExpressionStatement",
                  "src": "6058:34:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 633,
                        "name": "token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 242,
                        "src": "6126:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 634,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6133:4:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 635,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6139:1:0",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 630,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "6102:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      "id": 632,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3986,
                      "src": "6102:23:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_contract$_MiniMeToken_$3743_$_t_bool_$_t_uint256_$returns$__$",
                        "typeString": "function (contract MiniMeToken,bool,uint256) external"
                      }
                    },
                    "id": 636,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6102:39:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 637,
                  "nodeType": "ExpressionStatement",
                  "src": "6102:39:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 641,
                        "name": "token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 242,
                        "src": "6173:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 645,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "hexValue": "3530",
                              "id": 643,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6187:2:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_50_by_1",
                                "typeString": "int_const 50"
                              },
                              "value": "50"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "*",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 644,
                              "name": "PCT",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 170,
                              "src": "6192:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "6187:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 642,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6180:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": "uint64"
                        },
                        "id": 646,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6180:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 650,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "hexValue": "3230",
                              "id": 648,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6205:2:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_20_by_1",
                                "typeString": "int_const 20"
                              },
                              "value": "20"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "*",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 649,
                              "name": "PCT",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 170,
                              "src": "6210:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "6205:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 647,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6198:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": "uint64"
                        },
                        "id": 651,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6198:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 652,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6216:6:0",
                        "subdenomination": "days",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_86400_by_1",
                          "typeString": "int_const 86400"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                          "typeString": "contract MiniMeToken"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_rational_86400_by_1",
                          "typeString": "int_const 86400"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 638,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "6151:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      "id": 640,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5115,
                      "src": "6151:21:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_contract$_MiniMeToken_$3743_$_t_uint64_$_t_uint64_$_t_uint64_$returns$__$",
                        "typeString": "function (contract MiniMeToken,uint64,uint64,uint64) external"
                      }
                    },
                    "id": 653,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6151:72:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 654,
                  "nodeType": "ExpressionStatement",
                  "src": "6151:72:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 658,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 72,
                        "src": "6251:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$11104",
                          "typeString": "contract ENS"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 659,
                        "name": "devchain",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 163,
                        "src": "6256:8:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ENS_$11104",
                          "typeString": "contract ENS"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 655,
                        "name": "colony",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 405,
                        "src": "6233:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoColony_$12133",
                          "typeString": "contract PandoColony"
                        }
                      },
                      "id": 657,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11993,
                      "src": "6233:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ENS_$11104_$_t_bool_$returns$__$",
                        "typeString": "function (contract ENS,bool) external"
                      }
                    },
                    "id": 660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6233:32:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 661,
                  "nodeType": "ExpressionStatement",
                  "src": "6233:32:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 665,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "6316:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 666,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6316:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "31",
                            "id": 668,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6336:1:0",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            }
                          ],
                          "id": 667,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6328:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 669,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6328:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 662,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "6298:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      "id": 664,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4014,
                      "src": "6298:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 670,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6298:41:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 671,
                  "nodeType": "ExpressionStatement",
                  "src": "6298:41:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 675,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "6401:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 676,
                        "name": "dao",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "6413:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 677,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "6418:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 678,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "APP_MANAGER_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10281,
                          "src": "6418:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 679,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6418:22:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 672,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6381:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 674,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "grantPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6103,
                      "src": "6381:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 680,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6381:60:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 681,
                  "nodeType": "ExpressionStatement",
                  "src": "6381:60:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 685,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "6472:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 686,
                        "name": "dao",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "6478:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 687,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "6483:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 688,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "APP_MANAGER_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10281,
                          "src": "6483:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 689,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6483:22:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        },
                        {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 682,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6451:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 684,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revokePermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6160,
                      "src": "6451:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 690,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6451:55:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 691,
                  "nodeType": "ExpressionStatement",
                  "src": "6451:55:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 695,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "6541:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 696,
                        "name": "dao",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "6553:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 697,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 274,
                            "src": "6558:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 698,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "APP_MANAGER_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10281,
                          "src": "6558:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 699,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6558:22:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 692,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6516:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 694,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setPermissionManager",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6180,
                      "src": "6516:24:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 700,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6516:65:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 701,
                  "nodeType": "ExpressionStatement",
                  "src": "6516:65:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 705,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "6611:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 706,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6623:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 707,
                            "name": "acl",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 281,
                            "src": "6628:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ACL_$7166",
                              "typeString": "contract ACL"
                            }
                          },
                          "id": 708,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "CREATE_PERMISSIONS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5880,
                          "src": "6628:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 709,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6628:29:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 702,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6591:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 704,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "grantPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6103,
                      "src": "6591:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 710,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6591:67:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 711,
                  "nodeType": "ExpressionStatement",
                  "src": "6591:67:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 715,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "6689:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 716,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6695:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 717,
                            "name": "acl",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 281,
                            "src": "6700:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ACL_$7166",
                              "typeString": "contract ACL"
                            }
                          },
                          "id": 718,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "CREATE_PERMISSIONS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5880,
                          "src": "6700:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 719,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6700:29:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        },
                        {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 712,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6668:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 714,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revokePermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6160,
                      "src": "6668:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 720,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6668:62:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 721,
                  "nodeType": "ExpressionStatement",
                  "src": "6668:62:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 725,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "6765:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 726,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6777:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 727,
                            "name": "acl",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 281,
                            "src": "6782:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ACL_$7166",
                              "typeString": "contract ACL"
                            }
                          },
                          "id": 728,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "CREATE_PERMISSIONS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5880,
                          "src": "6782:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 729,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6782:29:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 722,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6740:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 724,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setPermissionManager",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6180,
                      "src": "6740:24:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 730,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6740:72:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 731,
                  "nodeType": "ExpressionStatement",
                  "src": "6740:72:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 735,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "6842:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 736,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "6854:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 737,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "6868:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 738,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "MINT_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3810,
                          "src": "6868:22:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 739,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6868:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 732,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6822:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 734,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "grantPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6103,
                      "src": "6822:19:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 740,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6822:71:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 741,
                  "nodeType": "ExpressionStatement",
                  "src": "6822:71:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 745,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12811,
                        "src": "6924:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 746,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "6930:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 747,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "6944:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 748,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "MINT_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3810,
                          "src": "6944:22:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 749,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6944:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PandoKit_$768",
                          "typeString": "contract PandoKit"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 742,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6903:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 744,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revokePermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6160,
                      "src": "6903:20:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 750,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6903:66:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 751,
                  "nodeType": "ExpressionStatement",
                  "src": "6903:66:0"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 755,
                        "name": "metavoting",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 382,
                        "src": "7004:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 756,
                        "name": "tokenManager",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 359,
                        "src": "7016:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 757,
                            "name": "tokenManager",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 359,
                            "src": "7030:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TokenManager_$4663",
                              "typeString": "contract TokenManager"
                            }
                          },
                          "id": 758,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "MINT_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3810,
                          "src": "7030:22:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 759,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7030:24:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Voting_$5862",
                          "typeString": "contract Voting"
                        },
                        {
                          "typeIdentifier": "t_contract$_TokenManager_$4663",
                          "typeString": "contract TokenManager"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 752,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 281,
                        "src": "6979:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 754,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setPermissionManager",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6180,
                      "src": "6979:24:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 760,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6979:76:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 761,
                  "nodeType": "ExpressionStatement",
                  "src": "6979:76:0"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 763,
                        "name": "dao",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 274,
                        "src": "7086:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      ],
                      "id": 762,
                      "name": "DeployInstance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 78,
                      "src": "7071:14:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 764,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7071:19:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 765,
                  "nodeType": "EmitStatement",
                  "src": "7066:24:0"
                }
              ]
            },
            "documentation": null,
            "id": 767,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "newInstance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 243,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 242,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 767,
                  "src": "2603:17:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                    "typeString": "contract MiniMeToken"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 241,
                    "name": "MiniMeToken",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3743,
                    "src": "2603:11:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeToken_$3743",
                      "typeString": "contract MiniMeToken"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2602:19:0"
            },
            "payable": false,
            "returnParameters": {
              "id": 244,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2631:0:0"
            },
            "scope": 768,
            "src": "2582:4515:0",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 769,
        "src": "1908:5191:0"
      }
    ],
    "src": "0:7100:0"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.1",
  "updatedAt": "2019-03-29T09:45:33.368Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}