{
  "contractName": "UController",
  "abi": [
    {
      "constant": false,
      "inputs": [
        {
          "name": "_scheme",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "unregisterScheme",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_scheme",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "getSchemeParameters",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newController",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "upgradeController",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_globalConstraint",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "removeGlobalConstraint",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "newControllers",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_params",
          "type": "bytes32[]"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "genericAction",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_amountInWei",
          "type": "uint256"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "sendEther",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_amount",
          "type": "uint256"
        },
        {
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "mintTokens",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_addedValue",
          "type": "uint256"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "externalTokenIncreaseApproval",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "unregisterSelf",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_amount",
          "type": "int256"
        },
        {
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "mintReputation",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "globalConstraintsCount",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_scheme",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "getSchemePermissions",
      "outputs": [
        {
          "name": "",
          "type": "bytes4"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_scheme",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "isSchemeRegistered",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "newOrganization",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "externalTokenTransfer",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_subtractedValue",
          "type": "uint256"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "externalTokenDecreaseApproval",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_globalConstraint",
          "type": "address"
        },
        {
          "name": "_params",
          "type": "bytes32"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "addGlobalConstraint",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_scheme",
          "type": "address"
        },
        {
          "name": "_paramsHash",
          "type": "bytes32"
        },
        {
          "name": "_permissions",
          "type": "bytes4"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "registerScheme",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_globalConstraint",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "isGlobalConstraintRegistered",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_from",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "externalTokenTransferFrom",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_amount",
          "type": "int256"
        },
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "MintReputation",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_amount",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "MintTokens",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_scheme",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "RegisterScheme",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_scheme",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "UnregisterScheme",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_params",
          "type": "bytes32[]"
        }
      ],
      "name": "GenericAction",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_amountInWei",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_to",
          "type": "address"
        }
      ],
      "name": "SendEther",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenTransfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_from",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenTransferFrom",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_spender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenIncreaseApproval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_spender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenDecreaseApproval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_globalConstraint",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_params",
          "type": "bytes32"
        }
      ],
      "name": "AddGlobalConstraint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_globalConstraint",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "RemoveGlobalConstraint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_oldController",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_newController",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "UpgradeController",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b6137f08061001e6000396000f3006060604052600436106101035763ffffffff60e060020a600035041663039de01d81146101085780631c4d56081461014157806342427bf8146101785780634f52b5be1461019d5780634fe125a3146101c257806360351748146101fd578063634965da146102575780636407e4321461027f578063644b98ed146102a75780636c525b13146102d65780636cfc6582146102f5578063824f2f1f1461031d5780639b51e35a1461033c5780639be2faed14610393578063b9981364146103b8578063b9a04cdd146103d9578063c6ab78b914610408578063e4537a7414610437578063e869d45f14610460578063f76488be146104ac578063fb4856a2146104d1575b600080fd5b341561011357600080fd5b61012d600160a060020a0360043581169060243516610506565b604051901515815260200160405180910390f35b341561014c57600080fd5b610166600160a060020a036004358116906024351661090a565b60405190815260200160405180910390f35b341561018357600080fd5b61012d600160a060020a0360043581169060243516610938565b34156101a857600080fd5b61012d600160a060020a0360043581169060243516610cbb565b34156101cd57600080fd5b6101e1600160a060020a0360043516610f4a565b604051600160a060020a03909116815260200160405180910390f35b341561020857600080fd5b61012d600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965050509235600160a060020a03169250610f65915050565b341561026257600080fd5b61012d600435600160a060020a036024358116906044351661135e565b341561028a57600080fd5b61012d600435600160a060020a03602435811690604435166116d6565b34156102b257600080fd5b61012d600160a060020a036004358116906024358116906044359060643516611a60565b34156102e157600080fd5b61012d600160a060020a0360043516611df6565b341561030057600080fd5b61012d600435600160a060020a0360243581169060443516611e88565b341561032857600080fd5b610166600160a060020a0360043516612215565b341561034757600080fd5b610361600160a060020a0360043581169060243516612233565b6040517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909116815260200160405180910390f35b341561039e57600080fd5b61012d600160a060020a036004358116906024351661226a565b34156103c357600080fd5b6103d7600160a060020a03600435166122a6565b005b34156103e457600080fd5b61012d600160a060020a03600435811690602435811690604435906064351661253e565b341561041357600080fd5b61012d600160a060020a0360043581169060243581169060443590606435166128c0565b341561044257600080fd5b61012d600160a060020a036004358116906024359060443516612c49565b341561046b57600080fd5b61012d600160a060020a03600435811690602435907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19604435169060643516612e3c565b34156104b757600080fd5b61012d600160a060020a036004358116906024351661335d565b34156104dc57600080fd5b61012d600160a060020a03600435811690602435811690604435811690606435906084351661338e565b600160a060020a038082166000908152602081815260408083203390941683526002939093019052908120600101548190839060e060020a027c02000000000000000000000000000000000000000000000000000000009081161461056a57600080fd5b7f756e7265676973746572536368656d6500000000000000000000000000000000846000610596613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015610623576000848152602090206002830201604080519081016040528154600160a060020a03168152600191820154602080830191909152908352920191016105db565b505050509050600091505b80518210156106fd5780828151811061064357fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061066957fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156106cc57600080fd5b6102c65a03f115156106dd57600080fd5b5050506040518051905015156106f257600080fd5b60019091019061062e565b600160a060020a03808916600090815260208181526040808320938d16835260029093019052206001015460e060020a908102965086161515610743576000965061082a565b600160a060020a0388811660009081526020818152604080832033909416835260029093019052206001015460e060020a021986167c0f0000000000000000000000000000000000000000000000000000000016156107a157600080fd5b87600160a060020a031689600160a060020a031633600160a060020a03167f6c6acccb2a8bdecd133efe43bc929b25f75255a88da20af641c9ba4acc0e0e5b60405160405180910390a4600160a060020a03808916600090815260208181526040808320938d168352600290930190529081209081556001908101805463ffffffff1916905596505b600091505b80518210156108fe5780828151811061084457fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061086a57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156108cd57600080fd5b6102c65a03f115156108de57600080fd5b5050506040518051905015156108f357600080fd5b60019091019061082f565b50505050505092915050565b600160a060020a03808216600090815260208181526040808320938616835260029093019052205492915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a027c08000000000000000000000000000000000000000000000000000000009081161461099957600080fd5b600160a060020a0383811660009081526001602052604090205416156109be57600080fd5b600160a060020a03841615156109d357600080fd5b600160a060020a03838116600081815260016020526040908190208054600160a060020a031916938816939093179092559063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610a4957600080fd5b6102c65a03f11515610a5a57600080fd5b505050600160a060020a0383811660009081526020819052604080822054308416931691638da5cb5b9151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ab757600080fd5b6102c65a03f11515610ac857600080fd5b50505060405180519050600160a060020a03161415610b5a57600160a060020a0380841660009081526020819052604090819020549091169063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610b4557600080fd5b6102c65a03f11515610b5657600080fd5b5050505b600160a060020a0383811660009081526020819052604080822060010154308416931691638da5cb5b9151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610bb757600080fd5b6102c65a03f11515610bc857600080fd5b50505060405180519050600160a060020a03161415610c5d57600160a060020a0380841660009081526020819052604090819020600101549091169063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610c4857600080fd5b6102c65a03f11515610c5957600080fd5b5050505b7f8206909fdb23a8ad42188f753026bc9082758d85e20dce9bc8c4b34f2ec3db32308585604051600160a060020a03938416815291831660208301529091166040808301919091526060909101905180910390a15060019392505050565b6000610cc561374a565b6000610ccf61374a565b600160a060020a03808616600090815260208181526040808320339094168352600290930190522060010154859060e060020a027c040000000000000000000000000000000000000000000000000000000090811614610d2e57600080fd5b600160a060020a03808716600090815260208181526040808320938b168352600490930190528190209080519081016040908152825460ff1615158252600190920154602080830191909152600160a060020a038916600090815290819052919091209094506003019250835115610f3b5782546000190160208501511015610ea457600160a060020a0386166000908152602081905260409020835460039091018054909160001901908110610de157fe5b9060005260206000209060020201604080519081016040528154600160a060020a031681526001909101546020808301919091529092508290849086015181548110610e2957fe5b906000526020600020906002020160008201518154600160a060020a031916600160a060020a03919091161781556020820151600190910155506020840151600160a060020a0387166000908152602081905260408120600401908451600160a060020a031681526020810191909152604001600020600101555b8254610eb4846000198301613761565b50600160a060020a03808716600090815260208181526040808320938b16835260049093018152918120805460ff19168155600101557f6ceab662049113d466f7e28b69edbec7cf641bc175522623536b09785887982a908890860151604051600160a060020a03909216825260208201526040908101905180910390a160019450610f40565b600094505b5050505092915050565b600160205260009081526040902054600160a060020a031681565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614610fa957600080fd5b7f67656e65726963416374696f6e00000000000000000000000000000000000000836000610fd5613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611062576000848152602090206002830201604080519081016040528154600160a060020a031681526001918201546020808301919091529083529201910161101a565b505050509050600091505b805182101561113c5780828151811061108257fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106110a857fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561110b57600080fd5b6102c65a03f1151561111c57600080fd5b50505060405180519050151561113157600080fd5b60019091019061106d565b33600160a060020a03167f8518530cc6bc186721ab2fc226031ca054c8484893d8b0c7faab65a58aac238d8960405160208082528190810183818151815260200191508051906020019060200280838360005b838110156111a757808201518382015260200161118f565b505050509050019250505060405180910390a286600160a060020a0316636ce15a54338a6000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561123e578082015183820152602001611226565b505050509050019350505050602060405180830381600087803b151561126357600080fd5b6102c65a03f1151561127457600080fd5b5050506040518051965050600091505b80518210156113535780828151811061129957fe5b9060200190602002015151600160a060020a0316638043154d338385815181106112bf57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561132257600080fd5b6102c65a03f1151561133357600080fd5b50505060405180519050151561134857600080fd5b600190910190611284565b505050505092915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a9081028116146113a257600080fd5b7f73656e64457468657200000000000000000000000000000000000000000000008360006113ce613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561145b576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611413565b505050509050600091505b80518210156115355780828151811061147b57fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106114a157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561150457600080fd5b6102c65a03f1151561151557600080fd5b50505060405180519050151561152a57600080fd5b600190910190611466565b87600160a060020a031633600160a060020a03167fda35e091786fbaaace32084910404a0e3a14f22a7645a4c3d0fec2c6731e3c348b60405190815260200160405180910390a386600160a060020a031663cb16d4a28a8a60006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b15156115da57600080fd5b6102c65a03f115156115eb57600080fd5b5050506040518051965050600091505b80518210156116ca5780828151811061161057fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061163657fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561169957600080fd5b6102c65a03f115156116aa57600080fd5b5050506040518051905015156116bf57600080fd5b6001909101906115fb565b50505050509392505050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461171a57600080fd5b7f6d696e74546f6b656e7300000000000000000000000000000000000000000000836000611746613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b828210156117d3576000848152602090206002830201604080519081016040528154600160a060020a031681526001918201546020808301919091529083529201910161178b565b505050509050600091505b80518210156118ad578082815181106117f357fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061181957fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561187c57600080fd5b6102c65a03f1151561188d57600080fd5b5050506040518051905015156118a257600080fd5b6001909101906117de565b86600160a060020a031688600160a060020a031633600160a060020a03167f5f31335b49d4d41584177ece651b9e2bb48565b82a1dfbf1b75eec6343215e4c8c60405190815260200160405180910390a4600160a060020a0380881660009081526020819052604080822054909216916340c10f19918b918d9190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561197057600080fd5b6102c65a03f1151561198157600080fd5b5050506040518051965050600091505b80518210156116ca578082815181106119a657fe5b9060200190602002015151600160a060020a0316638043154d338385815181106119cc57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611a2f57600080fd5b6102c65a03f11515611a4057600080fd5b505050604051805190501515611a5557600080fd5b600190910190611991565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614611aa457600080fd5b7f65787465726e616c546f6b656e496e637265617365417070726f76616c000000836000611ad0613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611b5d576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611b15565b505050509050600091505b8051821015611c3757808281518110611b7d57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110611ba357fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611c0657600080fd5b6102c65a03f11515611c1757600080fd5b505050604051805190501515611c2c57600080fd5b600190910190611b68565b89600160a060020a031633600160a060020a03167f2cee0640e7c161518a78fa901d8c0e4b2f51d42612532184a4f017a45b01ba288b8b604051600160a060020a03909216825260208201526040908101905180910390a386600160a060020a0316638cf1355c8b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611cf957600080fd5b6102c65a03f11515611d0a57600080fd5b5050506040518051965050600091505b8051821015611de957808281518110611d2f57fe5b9060200190602002015151600160a060020a0316638043154d33838581518110611d5557fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611db857600080fd5b6102c65a03f11515611dc957600080fd5b505050604051805190501515611dde57600080fd5b600190910190611d1a565b5050505050949350505050565b6000611e02338361226a565b1515611e1057506000611e83565b600160a060020a038083166000818152602081815260408083203390951680845260029095019091528082209182556001909101805463ffffffff1916905590919081907f6c6acccb2a8bdecd133efe43bc929b25f75255a88da20af641c9ba4acc0e0e5b905160405180910390a45060015b919050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614611ecc57600080fd5b7f6d696e7452657075746174696f6e000000000000000000000000000000000000836000611ef8613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611f85576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611f3d565b505050509050600091505b805182101561205f57808281518110611fa557fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110611fcb57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561202e57600080fd5b6102c65a03f1151561203f57600080fd5b50505060405180519050151561205457600080fd5b600190910190611f90565b86600160a060020a031688600160a060020a031633600160a060020a03167f14c6daf0620e7ece14b4140bbfd783064e337fd3ab814d9dd32c80fc4673fc158c60405190815260200160405180910390a4600160a060020a03808816600090815260208190526040808220600101549092169163fd9bf3aa918b918d9190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561212557600080fd5b6102c65a03f1151561213657600080fd5b5050506040518051965050600091505b80518210156116ca5780828151811061215b57fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061218157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156121e457600080fd5b6102c65a03f115156121f557600080fd5b50505060405180519050151561220a57600080fd5b600190910190612146565b600160a060020a031660009081526020819052604090206003015490565b600160a060020a03808216600090815260208181526040808320938616835260029093019052206001015460e060020a0292915050565b600160a060020a03808216600090815260208181526040808320938616835260029093019052206001015460e060020a90810216151592915050565b600160a060020a03811660009081526020819052604090206005015460ff16156122cf57600080fd5b30600160a060020a031681600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561231f57600080fd5b6102c65a03f1151561233057600080fd5b50505060405180519050600160a060020a031614151561234f57600080fd5b600160a060020a038116600081815260208190526040808220600501805460ff1916600117905563e1758bd8919051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156123b057600080fd5b6102c65a03f115156123c157600080fd5b5050506040518051600160a060020a038381166000818152602081905260408082208054600160a060020a031916959094169490941790925592506389ae1c909151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561243557600080fd5b6102c65a03f1151561244657600080fd5b5050506040518051600160a060020a03838116600090815260208190526040908190206001018054600160a060020a0319169390921692909217905590508051908101604090815260008083527c0f00000000000000000000000000000000000000000000000000000000602080850191909152600160a060020a038086168352828252838320339091168352600201905220815181556020820151600191909101805463ffffffff191660e060020a90920491909117905550600160a060020a03818116903316807f521230fe5fa463e77907aa7d9653b8cf93661e82561e966af8aa0a99910554c160405160405180910390a450565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461258257600080fd5b7f65787465726e616c546f6b656e5472616e7366657200000000000000000000008360006125ae613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561263b576000848152602090206002830201604080519081016040528154600160a060020a03168152600191820154602080830191909152908352920191016125f3565b505050509050600091505b80518210156127155780828151811061265b57fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061268157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156126e457600080fd5b6102c65a03f115156126f557600080fd5b50505060405180519050151561270a57600080fd5b600190910190612646565b88600160a060020a03168a600160a060020a031633600160a060020a03167fd4c08afec48fd2cbe49032dc89d3b388b7a4e4f0563a1fdccd73339beb025aa18b60405190815260200160405180910390a486600160a060020a031663dab0efff8b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156127d057600080fd5b6102c65a03f115156127e157600080fd5b5050506040518051965050600091505b8051821015611de95780828151811061280657fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061282c57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561288f57600080fd5b6102c65a03f115156128a057600080fd5b5050506040518051905015156128b557600080fd5b6001909101906127f1565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461290457600080fd5b7f65787465726e616c546f6b656e4465637265617365417070726f76616c000000836000612930613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b828210156129bd576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101612975565b505050509050600091505b8051821015612a97578082815181106129dd57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110612a0357fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612a6657600080fd5b6102c65a03f11515612a7757600080fd5b505050604051805190501515612a8c57600080fd5b6001909101906129c8565b89600160a060020a031633600160a060020a03167f56fc1f50d44108d3b715d77eb371d388bf2998c65b4eb5cf0ccd6c055be46d498b8b604051600160a060020a03909216825260208201526040908101905180910390a386600160a060020a031663d29ab9c48b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515612b5957600080fd5b6102c65a03f11515612b6a57600080fd5b5050506040518051965050600091505b8051821015611de957808281518110612b8f57fe5b9060200190602002015151600160a060020a0316638043154d33838581518110612bb557fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612c1857600080fd5b6102c65a03f11515612c2957600080fd5b505050604051805190501515612c3e57600080fd5b600190910190612b7a565b600160a060020a0380821660009081526020818152604080832033909416835260029093019052908120600101548190839060e060020a027c040000000000000000000000000000000000000000000000000000000090811614612cac57600080fd5b600160a060020a03808516600090815260208181526040808320938a1683526004840190915290205490925060ff161515612da85760038201805460018101612cf58382613761565b9160005260206000209060020201600060408051908101604052600160a060020a038a1681526020810189905291905081518154600160a060020a031916600160a060020a0391909116178155602082015160019091015550604090508051908101604090815260018252600384015460001901602080840191909152600160a060020a038916600090815260048601909152208151815460ff1916901515178155602082015160019091015550612dec565b600160a060020a03861660009081526004830160205260409020600101546003830180548792908110612dd757fe5b60009182526020909120600160029092020101555b7f6f3ac186000a779fe66d0a5188f51993a6593d93c4ff052ec0453aa84f09dbcb8686604051600160a060020a03909216825260208201526040908101905180910390a150600195945050505050565b600160a060020a0380821660009081526020818152604080832033909416835260029390930190529081206001015481908190849060e060020a027c020000000000000000000000000000000000000000000000000000000090811614612ea257600080fd5b7f7265676973746572536368656d65000000000000000000000000000000000000856000612ece613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015612f5b576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101612f13565b505050509050600091505b805182101561303557808281518110612f7b57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110612fa157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561300457600080fd5b6102c65a03f1151561301557600080fd5b50505060405180519050151561302a57600080fd5b600190910190612f66565b6000808a600160a060020a0316600160a060020a0316815260200190815260200160002060020160008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900460e060020a0296506000808a600160a060020a0316600160a060020a03168152602001908152602001600020600201600033600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900460e060020a029550600060e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168619888c18600f60e060020a0216167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151561315657600080fd5b7c0f0000000000000000000000000000000000000000000000000000000086198816161561318357600080fd5b60408051908101604052808c600019168152602001600160e060020a028c177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152506000808b600160a060020a0316600160a060020a0316815260200190815260200160002060020160008e600160a060020a0316600160a060020a03168152602001908152602001600020600082015181556020820151600191909101805463ffffffff191660e060020a90920491909117905550600160a060020a03898116908d81169033167f521230fe5fa463e77907aa7d9653b8cf93661e82561e966af8aa0a99910554c160405160405180910390a460019750600091505b805182101561334e5780828151811061329457fe5b9060200190602002015151600160a060020a0316638043154d338385815181106132ba57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561331d57600080fd5b6102c65a03f1151561332e57600080fd5b50505060405180519050151561334357600080fd5b60019091019061327f565b50505050505050949350505050565b600160a060020a03808216600090815260208181526040808320938616835260049093019052205460ff1692915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a9081028116146133d257600080fd5b7f65787465726e616c546f6b656e5472616e7366657246726f6d000000000000008360006133fe613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561348b576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101613443565b505050509050600091505b8051821015613565578082815181106134ab57fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106134d157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561353457600080fd5b6102c65a03f1151561354557600080fd5b50505060405180519050151561355a57600080fd5b600190910190613496565b8a600160a060020a031633600160a060020a03167f283faba4b8dcfe263728666be500623fdf5ae89ac78e40952fe2493f918ed62c8c8c8c604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a386600160a060020a031663b756d5a28c8c8c8c60006040516020015260405160e060020a63ffffffff8716028152600160a060020a0394851660048201529284166024840152921660448201526064810191909152608401602060405180830381600087803b151561363a57600080fd5b6102c65a03f1151561364b57600080fd5b5050506040518051965050600091505b805182101561372a5780828151811061367057fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061369657fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156136f957600080fd5b6102c65a03f1151561370a57600080fd5b50505060405180519050151561371f57600080fd5b60019091019061365b565b505050505095945050505050565b60206040519081016040526000815290565b604080519081016040526000808252602082015290565b81548183558181151161378d5760020281600202836000526020600020918201910161378d9190613792565b505050565b6137c191905b808211156137bd578054600160a060020a031916815560006001820155600201613798565b5090565b905600a165627a7a72305820cd426a7cb96c52f130fce7c2eda81de44fdaa22bdba8c7f6fbaeb8bdd5903f940029",
  "deployedBytecode": "0x6060604052600436106101035763ffffffff60e060020a600035041663039de01d81146101085780631c4d56081461014157806342427bf8146101785780634f52b5be1461019d5780634fe125a3146101c257806360351748146101fd578063634965da146102575780636407e4321461027f578063644b98ed146102a75780636c525b13146102d65780636cfc6582146102f5578063824f2f1f1461031d5780639b51e35a1461033c5780639be2faed14610393578063b9981364146103b8578063b9a04cdd146103d9578063c6ab78b914610408578063e4537a7414610437578063e869d45f14610460578063f76488be146104ac578063fb4856a2146104d1575b600080fd5b341561011357600080fd5b61012d600160a060020a0360043581169060243516610506565b604051901515815260200160405180910390f35b341561014c57600080fd5b610166600160a060020a036004358116906024351661090a565b60405190815260200160405180910390f35b341561018357600080fd5b61012d600160a060020a0360043581169060243516610938565b34156101a857600080fd5b61012d600160a060020a0360043581169060243516610cbb565b34156101cd57600080fd5b6101e1600160a060020a0360043516610f4a565b604051600160a060020a03909116815260200160405180910390f35b341561020857600080fd5b61012d600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965050509235600160a060020a03169250610f65915050565b341561026257600080fd5b61012d600435600160a060020a036024358116906044351661135e565b341561028a57600080fd5b61012d600435600160a060020a03602435811690604435166116d6565b34156102b257600080fd5b61012d600160a060020a036004358116906024358116906044359060643516611a60565b34156102e157600080fd5b61012d600160a060020a0360043516611df6565b341561030057600080fd5b61012d600435600160a060020a0360243581169060443516611e88565b341561032857600080fd5b610166600160a060020a0360043516612215565b341561034757600080fd5b610361600160a060020a0360043581169060243516612233565b6040517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909116815260200160405180910390f35b341561039e57600080fd5b61012d600160a060020a036004358116906024351661226a565b34156103c357600080fd5b6103d7600160a060020a03600435166122a6565b005b34156103e457600080fd5b61012d600160a060020a03600435811690602435811690604435906064351661253e565b341561041357600080fd5b61012d600160a060020a0360043581169060243581169060443590606435166128c0565b341561044257600080fd5b61012d600160a060020a036004358116906024359060443516612c49565b341561046b57600080fd5b61012d600160a060020a03600435811690602435907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19604435169060643516612e3c565b34156104b757600080fd5b61012d600160a060020a036004358116906024351661335d565b34156104dc57600080fd5b61012d600160a060020a03600435811690602435811690604435811690606435906084351661338e565b600160a060020a038082166000908152602081815260408083203390941683526002939093019052908120600101548190839060e060020a027c02000000000000000000000000000000000000000000000000000000009081161461056a57600080fd5b7f756e7265676973746572536368656d6500000000000000000000000000000000846000610596613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015610623576000848152602090206002830201604080519081016040528154600160a060020a03168152600191820154602080830191909152908352920191016105db565b505050509050600091505b80518210156106fd5780828151811061064357fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061066957fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156106cc57600080fd5b6102c65a03f115156106dd57600080fd5b5050506040518051905015156106f257600080fd5b60019091019061062e565b600160a060020a03808916600090815260208181526040808320938d16835260029093019052206001015460e060020a908102965086161515610743576000965061082a565b600160a060020a0388811660009081526020818152604080832033909416835260029093019052206001015460e060020a021986167c0f0000000000000000000000000000000000000000000000000000000016156107a157600080fd5b87600160a060020a031689600160a060020a031633600160a060020a03167f6c6acccb2a8bdecd133efe43bc929b25f75255a88da20af641c9ba4acc0e0e5b60405160405180910390a4600160a060020a03808916600090815260208181526040808320938d168352600290930190529081209081556001908101805463ffffffff1916905596505b600091505b80518210156108fe5780828151811061084457fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061086a57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156108cd57600080fd5b6102c65a03f115156108de57600080fd5b5050506040518051905015156108f357600080fd5b60019091019061082f565b50505050505092915050565b600160a060020a03808216600090815260208181526040808320938616835260029093019052205492915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a027c08000000000000000000000000000000000000000000000000000000009081161461099957600080fd5b600160a060020a0383811660009081526001602052604090205416156109be57600080fd5b600160a060020a03841615156109d357600080fd5b600160a060020a03838116600081815260016020526040908190208054600160a060020a031916938816939093179092559063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610a4957600080fd5b6102c65a03f11515610a5a57600080fd5b505050600160a060020a0383811660009081526020819052604080822054308416931691638da5cb5b9151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ab757600080fd5b6102c65a03f11515610ac857600080fd5b50505060405180519050600160a060020a03161415610b5a57600160a060020a0380841660009081526020819052604090819020549091169063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610b4557600080fd5b6102c65a03f11515610b5657600080fd5b5050505b600160a060020a0383811660009081526020819052604080822060010154308416931691638da5cb5b9151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610bb757600080fd5b6102c65a03f11515610bc857600080fd5b50505060405180519050600160a060020a03161415610c5d57600160a060020a0380841660009081526020819052604090819020600101549091169063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610c4857600080fd5b6102c65a03f11515610c5957600080fd5b5050505b7f8206909fdb23a8ad42188f753026bc9082758d85e20dce9bc8c4b34f2ec3db32308585604051600160a060020a03938416815291831660208301529091166040808301919091526060909101905180910390a15060019392505050565b6000610cc561374a565b6000610ccf61374a565b600160a060020a03808616600090815260208181526040808320339094168352600290930190522060010154859060e060020a027c040000000000000000000000000000000000000000000000000000000090811614610d2e57600080fd5b600160a060020a03808716600090815260208181526040808320938b168352600490930190528190209080519081016040908152825460ff1615158252600190920154602080830191909152600160a060020a038916600090815290819052919091209094506003019250835115610f3b5782546000190160208501511015610ea457600160a060020a0386166000908152602081905260409020835460039091018054909160001901908110610de157fe5b9060005260206000209060020201604080519081016040528154600160a060020a031681526001909101546020808301919091529092508290849086015181548110610e2957fe5b906000526020600020906002020160008201518154600160a060020a031916600160a060020a03919091161781556020820151600190910155506020840151600160a060020a0387166000908152602081905260408120600401908451600160a060020a031681526020810191909152604001600020600101555b8254610eb4846000198301613761565b50600160a060020a03808716600090815260208181526040808320938b16835260049093018152918120805460ff19168155600101557f6ceab662049113d466f7e28b69edbec7cf641bc175522623536b09785887982a908890860151604051600160a060020a03909216825260208201526040908101905180910390a160019450610f40565b600094505b5050505092915050565b600160205260009081526040902054600160a060020a031681565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614610fa957600080fd5b7f67656e65726963416374696f6e00000000000000000000000000000000000000836000610fd5613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611062576000848152602090206002830201604080519081016040528154600160a060020a031681526001918201546020808301919091529083529201910161101a565b505050509050600091505b805182101561113c5780828151811061108257fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106110a857fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561110b57600080fd5b6102c65a03f1151561111c57600080fd5b50505060405180519050151561113157600080fd5b60019091019061106d565b33600160a060020a03167f8518530cc6bc186721ab2fc226031ca054c8484893d8b0c7faab65a58aac238d8960405160208082528190810183818151815260200191508051906020019060200280838360005b838110156111a757808201518382015260200161118f565b505050509050019250505060405180910390a286600160a060020a0316636ce15a54338a6000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561123e578082015183820152602001611226565b505050509050019350505050602060405180830381600087803b151561126357600080fd5b6102c65a03f1151561127457600080fd5b5050506040518051965050600091505b80518210156113535780828151811061129957fe5b9060200190602002015151600160a060020a0316638043154d338385815181106112bf57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561132257600080fd5b6102c65a03f1151561133357600080fd5b50505060405180519050151561134857600080fd5b600190910190611284565b505050505092915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a9081028116146113a257600080fd5b7f73656e64457468657200000000000000000000000000000000000000000000008360006113ce613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561145b576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611413565b505050509050600091505b80518210156115355780828151811061147b57fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106114a157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561150457600080fd5b6102c65a03f1151561151557600080fd5b50505060405180519050151561152a57600080fd5b600190910190611466565b87600160a060020a031633600160a060020a03167fda35e091786fbaaace32084910404a0e3a14f22a7645a4c3d0fec2c6731e3c348b60405190815260200160405180910390a386600160a060020a031663cb16d4a28a8a60006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b15156115da57600080fd5b6102c65a03f115156115eb57600080fd5b5050506040518051965050600091505b80518210156116ca5780828151811061161057fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061163657fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561169957600080fd5b6102c65a03f115156116aa57600080fd5b5050506040518051905015156116bf57600080fd5b6001909101906115fb565b50505050509392505050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461171a57600080fd5b7f6d696e74546f6b656e7300000000000000000000000000000000000000000000836000611746613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b828210156117d3576000848152602090206002830201604080519081016040528154600160a060020a031681526001918201546020808301919091529083529201910161178b565b505050509050600091505b80518210156118ad578082815181106117f357fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061181957fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561187c57600080fd5b6102c65a03f1151561188d57600080fd5b5050506040518051905015156118a257600080fd5b6001909101906117de565b86600160a060020a031688600160a060020a031633600160a060020a03167f5f31335b49d4d41584177ece651b9e2bb48565b82a1dfbf1b75eec6343215e4c8c60405190815260200160405180910390a4600160a060020a0380881660009081526020819052604080822054909216916340c10f19918b918d9190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561197057600080fd5b6102c65a03f1151561198157600080fd5b5050506040518051965050600091505b80518210156116ca578082815181106119a657fe5b9060200190602002015151600160a060020a0316638043154d338385815181106119cc57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611a2f57600080fd5b6102c65a03f11515611a4057600080fd5b505050604051805190501515611a5557600080fd5b600190910190611991565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614611aa457600080fd5b7f65787465726e616c546f6b656e496e637265617365417070726f76616c000000836000611ad0613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611b5d576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611b15565b505050509050600091505b8051821015611c3757808281518110611b7d57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110611ba357fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611c0657600080fd5b6102c65a03f11515611c1757600080fd5b505050604051805190501515611c2c57600080fd5b600190910190611b68565b89600160a060020a031633600160a060020a03167f2cee0640e7c161518a78fa901d8c0e4b2f51d42612532184a4f017a45b01ba288b8b604051600160a060020a03909216825260208201526040908101905180910390a386600160a060020a0316638cf1355c8b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611cf957600080fd5b6102c65a03f11515611d0a57600080fd5b5050506040518051965050600091505b8051821015611de957808281518110611d2f57fe5b9060200190602002015151600160a060020a0316638043154d33838581518110611d5557fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611db857600080fd5b6102c65a03f11515611dc957600080fd5b505050604051805190501515611dde57600080fd5b600190910190611d1a565b5050505050949350505050565b6000611e02338361226a565b1515611e1057506000611e83565b600160a060020a038083166000818152602081815260408083203390951680845260029095019091528082209182556001909101805463ffffffff1916905590919081907f6c6acccb2a8bdecd133efe43bc929b25f75255a88da20af641c9ba4acc0e0e5b905160405180910390a45060015b919050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614611ecc57600080fd5b7f6d696e7452657075746174696f6e000000000000000000000000000000000000836000611ef8613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611f85576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611f3d565b505050509050600091505b805182101561205f57808281518110611fa557fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110611fcb57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561202e57600080fd5b6102c65a03f1151561203f57600080fd5b50505060405180519050151561205457600080fd5b600190910190611f90565b86600160a060020a031688600160a060020a031633600160a060020a03167f14c6daf0620e7ece14b4140bbfd783064e337fd3ab814d9dd32c80fc4673fc158c60405190815260200160405180910390a4600160a060020a03808816600090815260208190526040808220600101549092169163fd9bf3aa918b918d9190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561212557600080fd5b6102c65a03f1151561213657600080fd5b5050506040518051965050600091505b80518210156116ca5780828151811061215b57fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061218157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156121e457600080fd5b6102c65a03f115156121f557600080fd5b50505060405180519050151561220a57600080fd5b600190910190612146565b600160a060020a031660009081526020819052604090206003015490565b600160a060020a03808216600090815260208181526040808320938616835260029093019052206001015460e060020a0292915050565b600160a060020a03808216600090815260208181526040808320938616835260029093019052206001015460e060020a90810216151592915050565b600160a060020a03811660009081526020819052604090206005015460ff16156122cf57600080fd5b30600160a060020a031681600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561231f57600080fd5b6102c65a03f1151561233057600080fd5b50505060405180519050600160a060020a031614151561234f57600080fd5b600160a060020a038116600081815260208190526040808220600501805460ff1916600117905563e1758bd8919051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156123b057600080fd5b6102c65a03f115156123c157600080fd5b5050506040518051600160a060020a038381166000818152602081905260408082208054600160a060020a031916959094169490941790925592506389ae1c909151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561243557600080fd5b6102c65a03f1151561244657600080fd5b5050506040518051600160a060020a03838116600090815260208190526040908190206001018054600160a060020a0319169390921692909217905590508051908101604090815260008083527c0f00000000000000000000000000000000000000000000000000000000602080850191909152600160a060020a038086168352828252838320339091168352600201905220815181556020820151600191909101805463ffffffff191660e060020a90920491909117905550600160a060020a03818116903316807f521230fe5fa463e77907aa7d9653b8cf93661e82561e966af8aa0a99910554c160405160405180910390a450565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461258257600080fd5b7f65787465726e616c546f6b656e5472616e7366657200000000000000000000008360006125ae613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561263b576000848152602090206002830201604080519081016040528154600160a060020a03168152600191820154602080830191909152908352920191016125f3565b505050509050600091505b80518210156127155780828151811061265b57fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061268157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156126e457600080fd5b6102c65a03f115156126f557600080fd5b50505060405180519050151561270a57600080fd5b600190910190612646565b88600160a060020a03168a600160a060020a031633600160a060020a03167fd4c08afec48fd2cbe49032dc89d3b388b7a4e4f0563a1fdccd73339beb025aa18b60405190815260200160405180910390a486600160a060020a031663dab0efff8b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156127d057600080fd5b6102c65a03f115156127e157600080fd5b5050506040518051965050600091505b8051821015611de95780828151811061280657fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061282c57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561288f57600080fd5b6102c65a03f115156128a057600080fd5b5050506040518051905015156128b557600080fd5b6001909101906127f1565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461290457600080fd5b7f65787465726e616c546f6b656e4465637265617365417070726f76616c000000836000612930613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b828210156129bd576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101612975565b505050509050600091505b8051821015612a97578082815181106129dd57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110612a0357fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612a6657600080fd5b6102c65a03f11515612a7757600080fd5b505050604051805190501515612a8c57600080fd5b6001909101906129c8565b89600160a060020a031633600160a060020a03167f56fc1f50d44108d3b715d77eb371d388bf2998c65b4eb5cf0ccd6c055be46d498b8b604051600160a060020a03909216825260208201526040908101905180910390a386600160a060020a031663d29ab9c48b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515612b5957600080fd5b6102c65a03f11515612b6a57600080fd5b5050506040518051965050600091505b8051821015611de957808281518110612b8f57fe5b9060200190602002015151600160a060020a0316638043154d33838581518110612bb557fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612c1857600080fd5b6102c65a03f11515612c2957600080fd5b505050604051805190501515612c3e57600080fd5b600190910190612b7a565b600160a060020a0380821660009081526020818152604080832033909416835260029093019052908120600101548190839060e060020a027c040000000000000000000000000000000000000000000000000000000090811614612cac57600080fd5b600160a060020a03808516600090815260208181526040808320938a1683526004840190915290205490925060ff161515612da85760038201805460018101612cf58382613761565b9160005260206000209060020201600060408051908101604052600160a060020a038a1681526020810189905291905081518154600160a060020a031916600160a060020a0391909116178155602082015160019091015550604090508051908101604090815260018252600384015460001901602080840191909152600160a060020a038916600090815260048601909152208151815460ff1916901515178155602082015160019091015550612dec565b600160a060020a03861660009081526004830160205260409020600101546003830180548792908110612dd757fe5b60009182526020909120600160029092020101555b7f6f3ac186000a779fe66d0a5188f51993a6593d93c4ff052ec0453aa84f09dbcb8686604051600160a060020a03909216825260208201526040908101905180910390a150600195945050505050565b600160a060020a0380821660009081526020818152604080832033909416835260029390930190529081206001015481908190849060e060020a027c020000000000000000000000000000000000000000000000000000000090811614612ea257600080fd5b7f7265676973746572536368656d65000000000000000000000000000000000000856000612ece613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015612f5b576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101612f13565b505050509050600091505b805182101561303557808281518110612f7b57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110612fa157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561300457600080fd5b6102c65a03f1151561301557600080fd5b50505060405180519050151561302a57600080fd5b600190910190612f66565b6000808a600160a060020a0316600160a060020a0316815260200190815260200160002060020160008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900460e060020a0296506000808a600160a060020a0316600160a060020a03168152602001908152602001600020600201600033600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900460e060020a029550600060e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168619888c18600f60e060020a0216167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151561315657600080fd5b7c0f0000000000000000000000000000000000000000000000000000000086198816161561318357600080fd5b60408051908101604052808c600019168152602001600160e060020a028c177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152506000808b600160a060020a0316600160a060020a0316815260200190815260200160002060020160008e600160a060020a0316600160a060020a03168152602001908152602001600020600082015181556020820151600191909101805463ffffffff191660e060020a90920491909117905550600160a060020a03898116908d81169033167f521230fe5fa463e77907aa7d9653b8cf93661e82561e966af8aa0a99910554c160405160405180910390a460019750600091505b805182101561334e5780828151811061329457fe5b9060200190602002015151600160a060020a0316638043154d338385815181106132ba57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561331d57600080fd5b6102c65a03f1151561332e57600080fd5b50505060405180519050151561334357600080fd5b60019091019061327f565b50505050505050949350505050565b600160a060020a03808216600090815260208181526040808320938616835260049093019052205460ff1692915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a9081028116146133d257600080fd5b7f65787465726e616c546f6b656e5472616e7366657246726f6d000000000000008360006133fe613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561348b576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101613443565b505050509050600091505b8051821015613565578082815181106134ab57fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106134d157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561353457600080fd5b6102c65a03f1151561354557600080fd5b50505060405180519050151561355a57600080fd5b600190910190613496565b8a600160a060020a031633600160a060020a03167f283faba4b8dcfe263728666be500623fdf5ae89ac78e40952fe2493f918ed62c8c8c8c604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a386600160a060020a031663b756d5a28c8c8c8c60006040516020015260405160e060020a63ffffffff8716028152600160a060020a0394851660048201529284166024840152921660448201526064810191909152608401602060405180830381600087803b151561363a57600080fd5b6102c65a03f1151561364b57600080fd5b5050506040518051965050600091505b805182101561372a5780828151811061367057fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061369657fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156136f957600080fd5b6102c65a03f1151561370a57600080fd5b50505060405180519050151561371f57600080fd5b60019091019061365b565b505050505095945050505050565b60206040519081016040526000815290565b604080519081016040526000808252602082015290565b81548183558181151161378d5760020281600202836000526020600020918201910161378d9190613792565b505050565b6137c191905b808211156137bd578054600160a060020a031916815560006001820155600201613798565b5090565b905600a165627a7a72305820cd426a7cb96c52f130fce7c2eda81de44fdaa22bdba8c7f6fbaeb8bdd5903f940029",
  "sourceMap": "504:18404:10:-;;;3541:31;;;;;;;;504:18404;;;;;;",
  "deployedSourceMap": "504:18404:10:-;;;;;;;;;-1:-1:-1;;;504:18404:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8497:742;;;;;;;;;;-1:-1:-1;;;;;8497:742:10;;;;;;;;;;;;;;;;;;;;;;;;;;;9908:169;;;;;;;;;;-1:-1:-1;;;;;9908:169:10;;;;;;;;;;;;;;;;;;;;;;;;;13385:822;;;;;;;;;;-1:-1:-1;;;;;13385:822:10;;;;;;;;;;11964:1145;;;;;;;;;;-1:-1:-1;;;;;11964:1145:10;;;;;;;;;;2047:47;;;;;;;;;;-1:-1:-1;;;;;2047:47:10;;;;;;;;-1:-1:-1;;;;;2047:47:10;;;;;;;;;;;;;;14593:298;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14593:298:10;;-1:-1:-1;;;14593:298:10;;-1:-1:-1;;;;;14593:298:10;;-1:-1:-1;14593:298:10;;-1:-1:-1;;14593:298:10;15130:303;;;;;;;;;;;;-1:-1:-1;;;;;15130:303:10;;;;;;;;;;6454:341;;;;;;;;;;;;-1:-1:-1;;;;;6454:341:10;;;;;;;;;;17556:454;;;;;;;;;;-1:-1:-1;;;;;17556:454:10;;;;;;;;;;;;;;;;;;9398:306;;;;;;;;;;-1:-1:-1;;;;;9398:306:10;;;;;5861:357;;;;;;;;;;;;-1:-1:-1;;;;;5861:357:10;;;;;;;;;;10284:150;;;;;;;;;;-1:-1:-1;;;;;10284:150:10;;;;;10083:170;;;;;;;;;;-1:-1:-1;;;;;10083:170:10;;;;;;;;;;;;;-1:-1:-1;;10083:170:10;;;;;;;;;;;;;;9710:192;;;;;;;;;;-1:-1:-1;;;;;9710:192:10;;;;;;;;;;3718:576;;;;;;;;;;-1:-1:-1;;;;;3718:576:10;;;;;;;15763:395;;;;;;;;;;-1:-1:-1;;;;;15763:395:10;;;;;;;;;;;;;;;;;;18437:469;;;;;;;;;;-1:-1:-1;;;;;18437:469:10;;;;;;;;;;;;;;;;;;10947:781;;;;;;;;;;-1:-1:-1;;;;;10947:781:10;;;;;;;;;;;;;7127:1174;;;;;;;;;;-1:-1:-1;;;;;7127:1174:10;;;;;;;;-1:-1:-1;;7127:1174:10;;;;;;;;;10440:211;;;;;;;;;;-1:-1:-1;;;;;10440:211:10;;;;;;;;;;16694:440;;;;;;;;;;-1:-1:-1;;;;;16694:440:10;;;;;;;;;;;;;;;;;;;;;;;8497:742;-1:-1:-1;;;;;4547:21:10;;;8671:4;4547:21;;;;;;;;;;;4577:10;4547:41;;;;;4621:1;4547:29;;;;:41;;;;;:53;;;8671:4;;8594:7;;-1:-1:-1;;;4547:53:10;4614:9;4547:63;;;:76;4539:85;;;;;;4986:630;8650:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;-1:-1:-1;;;;;8717:22:10;;;:13;:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;:51;;;-1:-1:-1;;;8717:51:10;;;;-1:-1:-1;8820:26:10;;:39;8816:84;;;8882:5;8875:12;;;;8816:84;-1:-1:-1;;;;;9010:22:10;;;9077:1;9010:22;;;;;;;;;;;9041:10;9010:42;;;;;:30;;;;:42;;;:54;;;-1:-1:-1;;;9010:54:10;9009:55;8991:74;;8979:10;:87;:100;8971:109;;;;;;9147:7;-1:-1:-1;;;;;9110:45:10;9139:7;-1:-1:-1;;;;;9110:45:10;9127:10;-1:-1:-1;;;;;9110:45:10;;;;;;;;;;;-1:-1:-1;;;;;9172:22:10;;;:13;:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;;;9165:46;;;;;;;;;-1:-1:-1;;9165:46:10;;;;-1:-1:-1;5391:1:10;5415;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;;4634:1;;;;8497:742;;;;;;:::o;9908:169::-;-1:-1:-1;;;;;10020:22:10;;;9994:7;10020:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;:50;9908:169;;;;:::o;13385:822::-;-1:-1:-1;;;;;4884:22:10;;;13500:4;4884:22;;;;;;;;;;;4915:10;4884:42;;;;;:30;;;;:42;;;;;:54;;;13483:7;;-1:-1:-1;;;4884:54:10;4952:9;4884:64;;;:77;4876:86;;;;;;-1:-1:-1;;;;;13528:23:10;;;13563:1;13528:23;;;:14;:23;;;;;;;:37;13520:46;;;;;;-1:-1:-1;;;;;13639:28:10;;;;13631:37;;;;;;-1:-1:-1;;;;;13678:23:10;;;;;;;:14;:23;;;;;;;:40;;-1:-1:-1;;;;;;13678:40:10;;;;;;;;;;;:23;13728:35;;13678:40;;13728:51;-1:-1:-1;;;13728:51:10;;;;;;-1:-1:-1;;;;;13728:51:10;;;;;;;;;-1:-1:-1;13728:51:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;13793:22:10;;;:13;:22;;;;;;;;;;;:34;13847:4;13793:59;;;:34;;:40;;:42;;;;;;;;;-1:-1:-1;;;13793:42:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13793:59:10;;13789:158;;;-1:-1:-1;;;;;13868:22:10;;;:13;:22;;;;;;;;;;;;:34;;;;;:52;;13921:14;;13868:68;-1:-1:-1;;;13868:68:10;;;;;;-1:-1:-1;;;;;13868:68:10;;;;;;;;;-1:-1:-1;13868:68:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13789:158;-1:-1:-1;;;;;13960:22:10;;;:13;:22;;;;;;;;;;;:39;;;14019:4;13960:64;;;:39;;:45;;:47;;;;;;;;;-1:-1:-1;;;13960:47:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13960:64:10;;13956:168;;;-1:-1:-1;;;;;14040:22:10;;;:13;:22;;;;;;;;;;;;:39;;;;;;;:57;;14098:14;;14040:73;-1:-1:-1;;;14040:73:10;;;;;;-1:-1:-1;;;;;14040:73:10;;;;;;;;;-1:-1:-1;14040:73:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13956:168;14133:46;14151:4;14156:14;14171:7;14133:46;;-1:-1:-1;;;;;14133:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14196:4:10;;13385:822;-1:-1:-1;;;13385:822:10:o;11964:1145::-;12096:4;12116:56;;:::i;:::-;12252:44;12487:40;;:::i;:::-;-1:-1:-1;;;;;4719:21:10;;;:13;:21;;;;;;;;;;;4749:10;4719:41;;;;;:29;;;;:41;;;:53;;;12079:7;;-1:-1:-1;;;4719:53:10;4786:9;4719:63;;;:76;4711:85;;;;;;-1:-1:-1;;;;;12175:22:10;;;:13;:22;;;;;;;;;;;:67;;;;;:48;;;;:67;;;;;;:22;12116:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12299:22:10;;12116:126;12299:22;;;;;;;;;;;12116:126;;-1:-1:-1;12299:40:10;;;-1:-1:-1;12116:126:10;12355:33;12351:730;;;12441:24;;-1:-1:-1;;12441:26:10;12408:30;;;;:59;12404:428;;;-1:-1:-1;;;;;12530:22:10;;:13;:22;;;;;;;;;;12571:24;;12530:40;;;;:68;;:40;;-1:-1:-1;;12571:26:10;;12530:68;;;;;;;;;;;;;;;;12487:111;;;;;;;;;;-1:-1:-1;;;;;12487:111:10;;;;;;;;;;;;;;;;;;-1:-1:-1;12487:111:10;;12616:17;;12634:30;;;12616:49;;;;;;;;;;;;;;;;;;:68;;;;;;-1:-1:-1;;;;;;12616:68:10;-1:-1:-1;;;;;12616:68:10;;;;;;;;;;;;;;;;-1:-1:-1;12787:30:10;;;;-1:-1:-1;;;;;12702:22:10;;:13;:22;;;;;;;;;;:48;;;12751:16;:26;-1:-1:-1;;;;;12702:76:10;;;;;;;;;;;;-1:-1:-1;12702:76:10;:82;;:115;12404:428;12845:26;;;:17;-1:-1:-1;;12845:26:10;;;:::i;:::-;-1:-1:-1;;;;;;12892:22:10;;;:13;:22;;;;;;;;;;;:67;;;;;:48;;;;:67;;;;;12885:74;;-1:-1:-1;;12885:74:10;;;;;;12973:72;;12941:17;;13014:30;;;12973:72;;-1:-1:-1;;;;;12973:72:10;;;;;;;;;;;;;;;;;;;;13066:4;13059:11;;;;12351:730;13097:5;13090:12;;4806:1;11964:1145;;;;;;;;:::o;2047:47::-;;;;;;;;;;;;-1:-1:-1;;;;;2047:47:10;;:::o;14593:298::-;-1:-1:-1;;;;;4380:21:10;;;14761:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;14687:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;14740:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;14795:10;-1:-1:-1;;;;;14781:34:10;;14807:7;14781:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;14840:7:10;-1:-1:-1;;;;;14832:31:10;;14864:10;14876:7;14832:52;;;;;;;;;;;-1:-1:-1;;;14832:52:10;;;;;;;-1:-1:-1;;;;;14832:52:10;-1:-1:-1;;;;;14832:52:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;;4467:1;;;;14593:298;;;;;:::o;15130:303::-;-1:-1:-1;;;;;4380:21:10;;;15303:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;15233:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;15282:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;15359:3;-1:-1:-1;;;;;15323:40:10;15333:10;-1:-1:-1;;;;;15323:40:10;;15345:12;15323:40;;;;;;;;;;;;;;15388:7;-1:-1:-1;;;;;15380:27:10;;15408:12;15422:3;15380:46;;;;;;;;-1:-1:-1;;;15380:46:10;;;;;;;;;;;;;-1:-1:-1;;;;;15380:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;;4467:1;;;;15130:303;;;;;;:::o;6454:341::-;-1:-1:-1;;;;;4380:21:10;;;6636:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;6565:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;6615:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;6701:7;-1:-1:-1;;;;;6656:53:10;6679:12;-1:-1:-1;;;;;6656:53:10;6667:10;-1:-1:-1;;;;;6656:53:10;;6693:7;6656:53;;;;;;;;;;;;;;-1:-1:-1;;;;;6726:22:10;;;:13;:22;;;;;;;;;;;:34;;;;;:39;;6766:12;;6780:7;;6726:13;:62;;;;;;-1:-1:-1;;;6726:62:10;;;;;;-1:-1:-1;;;;;6726:62:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;17556:454;-1:-1:-1;;;;;4380:21:10;;;17803:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;17713:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;17782:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;17864:14;-1:-1:-1;;;;;17823:77:10;17853:10;-1:-1:-1;;;;;17823:77:10;;17879:8;17888:11;17823:77;;-1:-1:-1;;;;;17823:77:10;;;;;;;;;;;;;;;;;;;;17925:7;-1:-1:-1;;;;;17917:47:10;;17965:14;17981:8;17991:11;17917:86;;;;;;;;-1:-1:-1;;;17917:86:10;;;;;;-1:-1:-1;;;;;17917:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;;4467:1;;;;17556:454;;;;;;;:::o;9398:306::-;9454:4;9474:38;9493:10;9504:7;9474:18;:38::i;:::-;:47;;9470:90;;-1:-1:-1;9544:5:10;9537:12;;9470:90;-1:-1:-1;;;;;9576:22:10;;;:13;:22;;;;;;;;;;;9607:10;9576:42;;;;;;:30;;;;:42;;;;;;9569:49;;;;;;;;;-1:-1:-1;;9569:49:10;;;9576:22;;:42;;;9628:48;;;;;;;;;;-1:-1:-1;9693:4:10;9398:306;;;;:::o;5861:357::-;-1:-1:-1;;;;;4380:21:10;;;6050:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;5975:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;6029:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;6119:7;-1:-1:-1;;;;;6070:57:10;6097:12;-1:-1:-1;;;;;6070:57:10;6085:10;-1:-1:-1;;;;;6070:57:10;;6111:7;6070:57;;;;;;;;;;;;;;-1:-1:-1;;;;;6144:22:10;;;:13;:22;;;;;;;;;;;:39;;;;;;;:44;;6189:12;;6203:7;;6144:13;:67;;;;;;-1:-1:-1;;;6144:67:10;;;;;;-1:-1:-1;;;;;6144:67:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;10284:150;-1:-1:-1;;;;;10380:22:10;10357:4;10380:22;;;;;;;;;;:40;;:47;;10284:150::o;10083:170::-;-1:-1:-1;;;;;10195:22:10;;;10170:6;10195:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;:51;;;-1:-1:-1;;;10195:51:10;10083:170;;;;:::o;9710:192::-;-1:-1:-1;;;;;9820:22:10;;;9796:4;9820:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;9879:1;9820:51;;-1:-1:-1;;;9820:51:10;;;:61;:74;;9710:192;;;;:::o;3718:576::-;-1:-1:-1;;;;;3803:31:10;;:13;:31;;;;;;;;;;:37;;;;;3802:38;3794:47;;;;;;3886:4;-1:-1:-1;;;;;3859:32:10;:7;-1:-1:-1;;;;;3859:13:10;;:15;;;;;;;;;;;-1:-1:-1;;;3859:15:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3859:32:10;;3851:41;;;;;;;;-1:-1:-1;;;;;3902:31:10;;:13;:31;;;;;;;;;;;:37;;:44;;-1:-1:-1;;3902:44:10;3942:4;3902:44;;;4002:19;;3902:13;4002:21;;;;;;;;;-1:-1:-1;;;4002:21:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3956:31:10;;;:13;:31;;;;;;;;;;;:67;;-1:-1:-1;;;;;;3956:67:10;;;;;;;;;;;;:31;-1:-1:-1;4084:24:10;;:26;;;;;;;;;-1:-1:-1;;;4084:26:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4033:31:10;;;:13;:31;;;;;;;;;;;;:48;;:77;;-1:-1:-1;;;;;;4033:77:10;;;;;;;;;;;:31;-1:-1:-1;4033:31:10;4174:57;;;;;;;;4202:1;4174:57;;;4218:11;4174:57;;;;;;;;-1:-1:-1;;;;;4120:31:10;;;;;;;;;;;4160:10;4120:51;;;;;:39;;:51;;;4174:57;4120:111;;;;;;;;;;;;;;-1:-1:-1;;4120:111:10;-1:-1:-1;;;4120:111:10;;;;;;;;;-1:-1:-1;;;;;;4241:46:10;;;;4268:10;4241:46;;;;;;;;;;;;3718:576;:::o;15763:395::-;-1:-1:-1;;;;;4380:21:10;;;15984:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;15902:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;15963:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;16054:3;-1:-1:-1;;;;;16004:62:10;16038:14;-1:-1:-1;;;;;16004:62:10;16026:10;-1:-1:-1;;;;;16004:62:10;;16059:6;16004:62;;;;;;;;;;;;;;16091:7;-1:-1:-1;;;;;16083:39:10;;16123:14;16139:3;16144:6;16083:68;;;;;;;;-1:-1:-1;;;16083:68:10;;;;;;-1:-1:-1;;;;;16083:68:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;18437:469;-1:-1:-1;;;;;4380:21:10;;;18689:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;18599:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;18668:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;18750:14;-1:-1:-1;;;;;18709:82:10;18739:10;-1:-1:-1;;;;;18709:82:10;;18765:8;18774:16;18709:82;;-1:-1:-1;;;;;18709:82:10;;;;;;;;;;;;;;;;;;;;18816:7;-1:-1:-1;;;;;18808:47:10;;18856:14;18872:8;18882:16;18808:91;;;;;;;;-1:-1:-1;;;18808:91:10;;;;;;-1:-1:-1;;;;;18808:91:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;10947:781;-1:-1:-1;;;;;4719:21:10;;;11092:4;4719:21;;;;;;;;;;;4749:10;4719:41;;;;;:29;;;;:41;;;;;:53;;;11092:4;;11075:7;;-1:-1:-1;;;4719:53:10;4786:9;4719:63;;;:76;4711:85;;;;;;-1:-1:-1;;;;;11148:22:10;;;:13;:22;;;;;;;;;;;11185:57;;;;;:38;;;:57;;;;;:66;11148:22;;-1:-1:-1;11185:66:10;;11184:67;11180:464;;;11267:30;;;:80;;;;;;:30;:80;;:::i;:::-;;;;;;;;;;;;11303:43;;;;;;;;-1:-1:-1;;;;;11303:43:10;;;;;;;;;;;11267:80;-1:-1:-1;11303:43:10;11267:80;;;-1:-1:-1;;;;;;11267:80:10;-1:-1:-1;;;;;11267:80:10;;;;;;;;;;;;;;;;-1:-1:-1;11421:70:10;;-1:-1:-1;11421:70:10;;;;;;;;;11446:4;11421:70;;11451:30;;;:37;-1:-1:-1;;11451:39:10;11421:70;;;;;;;;-1:-1:-1;;;;;11361:57:10;;11421:70;11361:57;;;:38;;;:57;;;;11421:70;11361:130;;;-1:-1:-1;;11361:130:10;;;;;;;;;;;;;;;;-1:-1:-1;11180:464:10;;;-1:-1:-1;;;;;11552:57:10;;;;;;:38;;;:57;;;;;:63;;;11521:30;;;:95;;11626:7;;11552:63;11521:95;;;;;;;;;;;;;;:102;:95;;;;;:102;:112;11180:464;11653:47;11673:17;11692:7;11653:47;;-1:-1:-1;;;;;11653:47:10;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11717:4:10;;10947:781;-1:-1:-1;;;;;10947:781:10:o;7127:1174::-;-1:-1:-1;;;;;4547:21:10;;;7339:4;4547:21;;;;;;;;;;;4577:10;4547:41;;;;;4621:1;4547:29;;;;:41;;;;;:53;;;7339:4;;;;7264:7;;-1:-1:-1;;;4547:53:10;4614:9;4547:63;;;:76;4539:85;;;;;;4986:630;7318:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;7385:13;:22;7399:7;-1:-1:-1;;;;;7385:22:10;-1:-1:-1;;;;;7385:22:10;;;;;;;;;;;;:30;;:39;7416:7;-1:-1:-1;;;;;7385:39:10;-1:-1:-1;;;;;7385:39:10;;;;;;;;;;;;:51;;;;;;;;;;-1:-1:-1;;;7385:51:10;7359:77;;7472:13;:22;7486:7;-1:-1:-1;;;;;7472:22:10;-1:-1:-1;;;;;7472:22:10;;;;;;;;;;;;:30;;:42;7503:10;-1:-1:-1;;;;;7472:42:10;-1:-1:-1;;;;;7472:42:10;;;;;;;;;;;;:54;;;;;;;;;;-1:-1:-1;;;7472:54:10;7446:80;;7897:1;-1:-1:-1;;;7890:9:10;7824:75;;;7869:16;7868:17;7849:16;7836:12;:29;7831:2;-1:-1:-1;;;7824:10:10;:42;:62;:75;;;;7816:84;;;;;;;;8003:10;8033:17;;8015:36;;8003:49;:62;7995:71;;;;;;8152:67;;;;;;;;;8171:11;8152:67;;;;;;;8215:1;-1:-1:-1;;;8208:9:10;8195:12;:22;8152:67;;;;;;8110:13;:22;8124:7;-1:-1:-1;;;;;8110:22:10;-1:-1:-1;;;;;8110:22:10;;;;;;;;;;;;:30;;:39;8141:7;-1:-1:-1;;;;;8110:39:10;-1:-1:-1;;;;;8110:39:10;;;;;;;;;;;;:109;;;;;;;;;;;;;;;;;-1:-1:-1;;8110:109:10;-1:-1:-1;;;8110:109:10;;;;;;;;;-1:-1:-1;;;;;;8229:44:10;;;;;;;;8244:10;8229:44;;;;;;;;;;;8290:4;8283:11;;5415:1;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;;4634:1;;;;7127:1174;;;;;;;;;:::o;10440:211::-;-1:-1:-1;;;;;10568:22:10;;;10545:4;10568:22;;;;;;;;;;;:67;;;;;:48;;;;:67;;;:76;;;10440:211;;;;:::o;16694:440::-;-1:-1:-1;;;;;4380:21:10;;;16938:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;16852:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;16917:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;16996:14;-1:-1:-1;;;;;16958:73:10;16984:10;-1:-1:-1;;;;;16958:73:10;;17012:5;17019:3;17024:6;16958:73;;-1:-1:-1;;;;;16958:73:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17056:7;-1:-1:-1;;;;;17048:43:10;;17092:14;17108:5;17115:3;17120:6;17048:79;;;;;;;;-1:-1:-1;;;17048:79:10;;;;;;-1:-1:-1;;;;;17048:79:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;;4467:1;;;;16694:440;;;;;;;;:::o;504:18404::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;504:18404:10;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.18;\n\nimport \"./Avatar.sol\";\nimport \"./Reputation.sol\";\nimport \"./DAOToken.sol\";\nimport \"../globalConstraints/GlobalConstraintInterface.sol\";\nimport \"./ControllerInterface.sol\";\n\n\n/**\n * @title Universal Controller contract\n * @dev A universal controller hold organizations and controls their tokens ,reputations\n *       and avatar.\n * It is subject to a set of schemes and constraints that determine its behavior.\n * Each scheme has it own parameters and operation permissions.\n */\ncontract UController is ControllerInterface {\n\n    struct Scheme {\n        bytes32 paramsHash;  // a hash \"configuration\" of the scheme\n        bytes4  permissions; // A bitwise flags of permissions,\n                            // All 0: Not registered,\n                            // 1st bit: Flag if the scheme is registered,\n                            // 2nd bit: Scheme can register other schemes\n                            // 3th bit: Scheme can add/remove global constraints\n                            // 4rd bit: Scheme can upgrade the controller\n    }\n\n    struct GlobalConstraint {\n        address gcAddress;\n        bytes32 params;\n    }\n\n    struct GlobalConstraintRegister {\n        bool register; //is register\n        uint index;    //index at globalConstraints\n    }\n\n    struct Organization {\n        DAOToken                  nativeToken;\n        Reputation                nativeReputation;\n        mapping(address=>Scheme)  schemes;\n      // globalConstraints that determine pre- and post-conditions for all actions on the controller\n        GlobalConstraint[] globalConstraints;\n      // globalConstraintsRegister indicate is a globalConstraints is register or not\n        mapping(address=>GlobalConstraintRegister) globalConstraintsRegister;\n        bool exist;\n    }\n\n    //mapping between organization's avatar address to Organization\n    mapping(address=>Organization) organizations;\n  // newController will point to the new controller after the present controller is upgraded\n  //  address public newController;\n    mapping(address=>address) public newControllers;//mapping between avatar address and newController address\n\n    event MintReputation (address indexed _sender, address indexed _beneficiary, int256 _amount,address indexed _avatar);\n    event MintTokens (address indexed _sender, address indexed _beneficiary, uint256 _amount, address indexed _avatar);\n    event RegisterScheme (address indexed _sender, address indexed _scheme,address indexed _avatar);\n    event UnregisterScheme (address indexed _sender, address indexed _scheme, address indexed _avatar);\n    event GenericAction (address indexed _sender, bytes32[] _params);\n    event SendEther (address indexed _sender, uint _amountInWei, address indexed _to);\n    event ExternalTokenTransfer (address indexed _sender, address indexed _externalToken, address indexed _to, uint _value);\n    event ExternalTokenTransferFrom (address indexed _sender, address indexed _externalToken, address _from, address _to, uint _value);\n    event ExternalTokenIncreaseApproval (address indexed _sender, StandardToken indexed _externalToken, address _spender, uint _value);\n    event ExternalTokenDecreaseApproval (address indexed _sender, StandardToken indexed _externalToken, address _spender, uint _value);\n    event AddGlobalConstraint(address _globalConstraint, bytes32 _params);\n    event RemoveGlobalConstraint(address _globalConstraint ,uint256 _index);\n    event UpgradeController(address _oldController,address _newController,address _avatar);\n\n    function UController()public {}\n\n   /**\n    * @dev newOrganization set up a new organization with default genesisScheme.\n    * @param _avatar the organization avatar\n    */\n    function newOrganization(\n        Avatar _avatar\n    ) public\n    {\n        require(!organizations[address(_avatar)].exist);\n        require(_avatar.owner() == address(this));\n        organizations[address(_avatar)].exist = true;\n        organizations[address(_avatar)].nativeToken = _avatar.nativeToken();\n        organizations[address(_avatar)].nativeReputation = _avatar.nativeReputation();\n        organizations[address(_avatar)].schemes[msg.sender] = Scheme({paramsHash: bytes32(0),permissions: bytes4(0xF)});\n        RegisterScheme(msg.sender, msg.sender,_avatar);\n    }\n\n  // Modifiers:\n    modifier onlyRegisteredScheme(address avatar) {\n        require(organizations[avatar].schemes[msg.sender].permissions&bytes4(1) == bytes4(1));\n        _;\n    }\n\n    modifier onlyRegisteringSchemes(address avatar) {\n        require(organizations[avatar].schemes[msg.sender].permissions&bytes4(2) == bytes4(2));\n        _;\n    }\n\n    modifier onlyGlobalConstraintsScheme(address avatar) {\n        require(organizations[avatar].schemes[msg.sender].permissions&bytes4(4) == bytes4(4));\n        _;\n    }\n\n    modifier onlyUpgradingScheme(address _avatar) {\n        require(organizations[_avatar].schemes[msg.sender].permissions&bytes4(8) == bytes4(8));\n        _;\n    }\n\n    modifier onlySubjectToConstraint(bytes32 func,address _avatar) {\n        uint index;\n        GlobalConstraint[] memory globalConstraints = organizations[_avatar].globalConstraints;\n        for (index = 0;index<globalConstraints.length;index++) {\n            require((GlobalConstraintInterface(globalConstraints[index].gcAddress)).pre(msg.sender, globalConstraints[index].params, func));\n        }\n        _;\n        for (index = 0;index<globalConstraints.length;index++) {\n            require((GlobalConstraintInterface(globalConstraints[index].gcAddress)).post(msg.sender, globalConstraints[index].params, func));\n        }\n    }\n\n    /**\n     * @dev mint reputation .\n     * @param  _amount amount of reputation to mint\n     * @param _beneficiary beneficiary address\n     * @param _avatar the organization avatar.\n     * @return bool which represents a success\n     */\n    function mintReputation(int256 _amount, address _beneficiary,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"mintReputation\",_avatar)\n    returns(bool)\n    {\n        MintReputation(msg.sender, _beneficiary, _amount,_avatar);\n        return organizations[_avatar].nativeReputation.mint(_beneficiary, _amount);\n    }\n\n    /**\n     * @dev mint tokens .\n     * @param  _amount amount of token to mint\n     * @param _beneficiary beneficiary address\n     * @param _avatar the organization avatar.\n     * @return bool which represents a success\n     */\n    function mintTokens(uint256 _amount, address _beneficiary,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"mintTokens\",_avatar)\n    returns(bool)\n    {\n        MintTokens(msg.sender, _beneficiary, _amount,_avatar);\n        return organizations[_avatar].nativeToken.mint(_beneficiary, _amount);\n    }\n\n  /**\n   * @dev register or update a scheme\n   * @param _scheme the address of the scheme\n   * @param _paramsHash a hashed configuration of the usage of the scheme\n   * @param _permissions the permissions the new scheme will have\n   * @param _avatar the organization avatar.\n   * @return bool which represents a success\n   */\n    function registerScheme(address _scheme, bytes32 _paramsHash, bytes4 _permissions,address _avatar)\n    public\n    onlyRegisteringSchemes(_avatar)\n    onlySubjectToConstraint(\"registerScheme\",_avatar)\n    returns(bool)\n    {\n        bytes4 schemePermission = organizations[_avatar].schemes[_scheme].permissions;\n        bytes4 senderPermission = organizations[_avatar].schemes[msg.sender].permissions;\n    // Check scheme has at least the permissions it is changing, and at least the current permissions:\n    // Implementation is a bit messy. One must recall logic-circuits ^^\n\n    // produces non-zero if sender does not have all of the perms that are changing between old and new\n        require(bytes4(15)&(_permissions^schemePermission)&(~senderPermission) == bytes4(0));\n\n    // produces non-zero if sender does not have all of the perms in the old scheme\n        require(bytes4(15)&(schemePermission&(~senderPermission)) == bytes4(0));\n\n    // Add or change the scheme:\n        organizations[_avatar].schemes[_scheme] = Scheme({paramsHash:_paramsHash,permissions:_permissions|bytes4(1)});\n        RegisterScheme(msg.sender, _scheme, _avatar);\n        return true;\n    }\n\n    /**\n     * @dev unregister a scheme\n     * @param _scheme the address of the scheme\n     * @param _avatar the organization avatar.\n     * @return bool which represents a success\n     */\n    function unregisterScheme(address _scheme,address _avatar)\n    public\n    onlyRegisteringSchemes(_avatar)\n    onlySubjectToConstraint(\"unregisterScheme\",_avatar)\n    returns(bool)\n    {\n        bytes4 schemePermission = organizations[_avatar].schemes[_scheme].permissions;\n    //check if the scheme is register\n        if (schemePermission&bytes4(1) == bytes4(0)) {\n            return false;\n          }\n    // Check the unregistering scheme has enough permissions:\n        require(bytes4(15)&(schemePermission&(~organizations[_avatar].schemes[msg.sender].permissions)) == bytes4(0));\n\n    // Unregister:\n        UnregisterScheme(msg.sender, _scheme,_avatar);\n        delete organizations[_avatar].schemes[_scheme];\n        return true;\n    }\n\n    /**\n     * @dev unregister the caller's scheme\n     * @param _avatar the organization avatar.\n     * @return bool which represents a success\n     */\n    function unregisterSelf(address _avatar) public returns(bool) {\n        if (isSchemeRegistered(msg.sender,_avatar) == false) {\n            return false;\n        }\n        delete organizations[_avatar].schemes[msg.sender];\n        UnregisterScheme(msg.sender, msg.sender,_avatar);\n        return true;\n    }\n\n    function isSchemeRegistered( address _scheme,address _avatar) public constant returns(bool) {\n        return (organizations[_avatar].schemes[_scheme].permissions&bytes4(1) != bytes4(0));\n    }\n\n    function getSchemeParameters(address _scheme,address _avatar) public constant returns(bytes32) {\n        return organizations[_avatar].schemes[_scheme].paramsHash;\n    }\n\n    function getSchemePermissions(address _scheme,address _avatar) public constant returns(bytes4) {\n        return organizations[_avatar].schemes[_scheme].permissions;\n    }\n\n  // Global Constraints:\n    function globalConstraintsCount(address _avatar) public constant returns(uint) {\n        return organizations[_avatar].globalConstraints.length;\n    }\n\n    function isGlobalConstraintRegistered(address _globalConstraint,address _avatar) public constant returns(bool) {\n        return organizations[_avatar].globalConstraintsRegister[_globalConstraint].register;\n    }\n\n    /**\n     * @dev add or update Global Constraint\n     * @param _globalConstraint the address of the global constraint to be added.\n     * @param _params the constraint parameters hash.\n     * @param _avatar the organization avatar.\n     * @return bool which represents a success\n     */\n    function addGlobalConstraint(address _globalConstraint, bytes32 _params,address _avatar)\n    public onlyGlobalConstraintsScheme(_avatar) returns(bool)\n    {\n        Organization storage organization = organizations[_avatar];\n        if (!organization.globalConstraintsRegister[_globalConstraint].register) {\n            organization.globalConstraints.push(GlobalConstraint(_globalConstraint,_params));\n            organization.globalConstraintsRegister[_globalConstraint] = GlobalConstraintRegister(true,organization.globalConstraints.length-1);\n        }else {\n            organization.globalConstraints[organization.globalConstraintsRegister[_globalConstraint].index].params = _params;\n        }\n        AddGlobalConstraint(_globalConstraint, _params);\n        return true;\n    }\n\n    /**\n     * @dev remove Global Constraint\n     * @param _globalConstraint the address of the global constraint to be remove.\n     * @param _avatar the organization avatar.\n     * @return bool which represents a success\n     */\n    function removeGlobalConstraint (address _globalConstraint,address _avatar)\n    public onlyGlobalConstraintsScheme(_avatar) returns(bool)\n    {\n        GlobalConstraintRegister memory globalConstraintRegister = organizations[_avatar].globalConstraintsRegister[_globalConstraint];\n        GlobalConstraint[] storage globalConstraints = organizations[_avatar].globalConstraints;\n\n\n        if (globalConstraintRegister.register) {\n            if (globalConstraintRegister.index < globalConstraints.length-1) {\n                GlobalConstraint memory globalConstraint = organizations[_avatar].globalConstraints[globalConstraints.length-1];\n                globalConstraints[globalConstraintRegister.index] = globalConstraint;\n                organizations[_avatar].globalConstraintsRegister[globalConstraint.gcAddress].index = globalConstraintRegister.index;\n            }\n            globalConstraints.length--;\n            delete organizations[_avatar].globalConstraintsRegister[_globalConstraint];\n            RemoveGlobalConstraint(_globalConstraint,globalConstraintRegister.index);\n            return true;\n        }\n        return false;\n    }\n\n  /**\n    * @dev upgrade the Controller\n    *      The function will trigger an event 'UpgradeController'.\n    * @param  _newController the address of the new controller.\n    * @param _avatar the organization avatar.\n    * @return bool which represents a success\n    */\n    function upgradeController(address _newController,address _avatar)\n    public onlyUpgradingScheme(_avatar) returns(bool)\n    {\n        require(newControllers[_avatar] == address(0));   // so the upgrade could be done once for a contract.\n        require(_newController != address(0));\n        newControllers[_avatar] = _newController;\n        (Avatar(_avatar)).transferOwnership(_newController);\n        if (organizations[_avatar].nativeToken.owner() == address(this)) {\n            organizations[_avatar].nativeToken.transferOwnership(_newController);\n        }\n        if (organizations[_avatar].nativeReputation.owner() == address(this)) {\n            organizations[_avatar].nativeReputation.transferOwnership(_newController);\n        }\n        UpgradeController(this,_newController,_avatar);\n        return true;\n    }\n\n    /**\n    * @dev do a generic delegate call to the contract which called us.\n    * This function use delegatecall and might expose the organization to security\n    * risk. Use this function only if you really knows what you are doing.\n    * @param _params the params for the call.\n    * @param _avatar the organization avatar.\n    * @return bool which represents success\n    */\n    function genericAction(bytes32[] _params,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"genericAction\",_avatar)\n    returns(bool)\n    {\n        GenericAction(msg.sender, _params);\n        return (Avatar(_avatar)).genericAction(msg.sender, _params);\n    }\n\n  /**\n   * @dev send some ether\n   * @param _amountInWei the amount of ether (in Wei) to send\n   * @param _to address of the beneficiary\n   * @param _avatar the organization avatar.\n   * @return bool which represents a success\n   */\n    function sendEther(uint _amountInWei, address _to,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"sendEther\",_avatar)\n    returns(bool)\n    {\n        SendEther(msg.sender, _amountInWei, _to);\n        return (Avatar(_avatar)).sendEther(_amountInWei, _to);\n    }\n\n    /**\n    * @dev send some amount of arbitrary ERC20 Tokens\n    * @param _externalToken the address of the Token Contract\n    * @param _to address of the beneficiary\n    * @param _value the amount of ether (in Wei) to send\n    * @param _avatar the organization avatar.\n    * @return bool which represents a success\n    */\n    function externalTokenTransfer(StandardToken _externalToken, address _to, uint _value,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"externalTokenTransfer\",_avatar)\n    returns(bool)\n    {\n        ExternalTokenTransfer(msg.sender, _externalToken, _to, _value);\n        return (Avatar(_avatar)).externalTokenTransfer(_externalToken, _to, _value);\n    }\n\n    /**\n    * @dev transfer token \"from\" address \"to\" address\n    *      One must to approve the amount of tokens which can be spend from the\n    *      \"from\" account.This can be done using externalTokenApprove.\n    * @param _externalToken the address of the Token Contract\n    * @param _from address of the account to send from\n    * @param _to address of the beneficiary\n    * @param _value the amount of ether (in Wei) to send\n    * @param _avatar the organization avatar.\n    * @return bool which represents a success\n    */\n    function externalTokenTransferFrom(StandardToken _externalToken, address _from, address _to, uint _value,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"externalTokenTransferFrom\",_avatar)\n    returns(bool)\n    {\n        ExternalTokenTransferFrom(msg.sender, _externalToken, _from, _to, _value);\n        return (Avatar(_avatar)).externalTokenTransferFrom(_externalToken, _from, _to, _value);\n    }\n\n    /**\n    * @dev increase approval for the spender address to spend a specified amount of tokens\n    *      on behalf of msg.sender.\n    * @param _externalToken the address of the Token Contract\n    * @param _spender address\n    * @param _addedValue the amount of ether (in Wei) which the approval is referring to.\n    * @param _avatar the organization avatar.\n    * @return bool which represents a success\n    */\n    function externalTokenIncreaseApproval(StandardToken _externalToken, address _spender, uint _addedValue,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"externalTokenIncreaseApproval\",_avatar)\n    returns(bool)\n    {\n        ExternalTokenIncreaseApproval(msg.sender,_externalToken,_spender,_addedValue);\n        return (Avatar(_avatar)).externalTokenIncreaseApproval(_externalToken, _spender, _addedValue);\n    }\n\n    /**\n    * @dev decrease approval for the spender address to spend a specified amount of tokens\n    *      on behalf of msg.sender.\n    * @param _externalToken the address of the Token Contract\n    * @param _spender address\n    * @param _subtractedValue the amount of ether (in Wei) which the approval is referring to.\n    * @param _avatar the organization avatar.\n    * @return bool which represents a success\n    */\n    function externalTokenDecreaseApproval(StandardToken _externalToken, address _spender, uint _subtractedValue,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"externalTokenDecreaseApproval\",_avatar)\n    returns(bool)\n    {\n        ExternalTokenDecreaseApproval(msg.sender,_externalToken,_spender,_subtractedValue);\n        return (Avatar(_avatar)).externalTokenDecreaseApproval(_externalToken, _spender, _subtractedValue);\n    }\n}\n",
  "sourcePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/UController.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/UController.sol",
      "exportedSymbols": {
        "UController": [
          5865
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 4546,
        "name": "PragmaDirective",
        "src": "0:24:10"
      },
      {
        "attributes": {
          "SourceUnit": 3066,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/Avatar.sol",
          "file": "./Avatar.sol",
          "scope": 5866,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4547,
        "name": "ImportDirective",
        "src": "26:22:10"
      },
      {
        "attributes": {
          "SourceUnit": 4545,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/Reputation.sol",
          "file": "./Reputation.sol",
          "scope": 5866,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4548,
        "name": "ImportDirective",
        "src": "49:26:10"
      },
      {
        "attributes": {
          "SourceUnit": 4400,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/DAOToken.sol",
          "file": "./DAOToken.sol",
          "scope": 5866,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4549,
        "name": "ImportDirective",
        "src": "76:24:10"
      },
      {
        "attributes": {
          "SourceUnit": 5891,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/globalConstraints/GlobalConstraintInterface.sol",
          "file": "../globalConstraints/GlobalConstraintInterface.sol",
          "scope": 5866,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4550,
        "name": "ImportDirective",
        "src": "101:60:10"
      },
      {
        "attributes": {
          "SourceUnit": 4365,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/ControllerInterface.sol",
          "file": "./ControllerInterface.sol",
          "scope": 5866,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4551,
        "name": "ImportDirective",
        "src": "162:35:10"
      },
      {
        "attributes": {
          "contractDependencies": [
            4364
          ],
          "contractKind": "contract",
          "documentation": "@title Universal Controller contract\n@dev A universal controller hold organizations and controls their tokens ,reputations\n      and avatar.\nIt is subject to a set of schemes and constraints that determine its behavior.\nEach scheme has it own parameters and operation permissions.",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            5865,
            4364
          ],
          "name": "UController",
          "scope": 5866
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "ControllerInterface",
                  "referencedDeclaration": 4364,
                  "type": "contract ControllerInterface"
                },
                "id": 4552,
                "name": "UserDefinedTypeName",
                "src": "528:19:10"
              }
            ],
            "id": 4553,
            "name": "InheritanceSpecifier",
            "src": "528:19:10"
          },
          {
            "attributes": {
              "canonicalName": "UController.Scheme",
              "name": "Scheme",
              "scope": 5865,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "paramsHash",
                  "scope": 4558,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 4554,
                    "name": "ElementaryTypeName",
                    "src": "579:7:10"
                  }
                ],
                "id": 4555,
                "name": "VariableDeclaration",
                "src": "579:18:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "permissions",
                  "scope": 4558,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes4",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes4",
                      "type": "bytes4"
                    },
                    "id": 4556,
                    "name": "ElementaryTypeName",
                    "src": "648:6:10"
                  }
                ],
                "id": 4557,
                "name": "VariableDeclaration",
                "src": "648:19:10"
              }
            ],
            "id": 4558,
            "name": "StructDefinition",
            "src": "555:511:10"
          },
          {
            "attributes": {
              "canonicalName": "UController.GlobalConstraint",
              "name": "GlobalConstraint",
              "scope": 5865,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "gcAddress",
                  "scope": 4563,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 4559,
                    "name": "ElementaryTypeName",
                    "src": "1106:7:10"
                  }
                ],
                "id": 4560,
                "name": "VariableDeclaration",
                "src": "1106:17:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "params",
                  "scope": 4563,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 4561,
                    "name": "ElementaryTypeName",
                    "src": "1133:7:10"
                  }
                ],
                "id": 4562,
                "name": "VariableDeclaration",
                "src": "1133:14:10"
              }
            ],
            "id": 4563,
            "name": "StructDefinition",
            "src": "1072:82:10"
          },
          {
            "attributes": {
              "canonicalName": "UController.GlobalConstraintRegister",
              "name": "GlobalConstraintRegister",
              "scope": 5865,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "register",
                  "scope": 4568,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bool",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bool",
                      "type": "bool"
                    },
                    "id": 4564,
                    "name": "ElementaryTypeName",
                    "src": "1202:4:10"
                  }
                ],
                "id": 4565,
                "name": "VariableDeclaration",
                "src": "1202:13:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "index",
                  "scope": 4568,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 4566,
                    "name": "ElementaryTypeName",
                    "src": "1239:4:10"
                  }
                ],
                "id": 4567,
                "name": "VariableDeclaration",
                "src": "1239:10:10"
              }
            ],
            "id": 4568,
            "name": "StructDefinition",
            "src": "1160:128:10"
          },
          {
            "attributes": {
              "canonicalName": "UController.Organization",
              "name": "Organization",
              "scope": 5865,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "nativeToken",
                  "scope": 4586,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract DAOToken",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "DAOToken",
                      "referencedDeclaration": 4399,
                      "type": "contract DAOToken"
                    },
                    "id": 4569,
                    "name": "UserDefinedTypeName",
                    "src": "1324:8:10"
                  }
                ],
                "id": 4570,
                "name": "VariableDeclaration",
                "src": "1324:37:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "nativeReputation",
                  "scope": 4586,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract Reputation",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Reputation",
                      "referencedDeclaration": 4544,
                      "type": "contract Reputation"
                    },
                    "id": 4571,
                    "name": "UserDefinedTypeName",
                    "src": "1371:10:10"
                  }
                ],
                "id": 4572,
                "name": "VariableDeclaration",
                "src": "1371:42:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "schemes",
                  "scope": 4586,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "mapping(address => struct UController.Scheme storage ref)",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "mapping(address => struct UController.Scheme storage ref)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4573,
                        "name": "ElementaryTypeName",
                        "src": "1431:7:10"
                      },
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Scheme",
                          "referencedDeclaration": 4558,
                          "type": "struct UController.Scheme storage pointer"
                        },
                        "id": 4574,
                        "name": "UserDefinedTypeName",
                        "src": "1440:6:10"
                      }
                    ],
                    "id": 4575,
                    "name": "Mapping",
                    "src": "1423:24:10"
                  }
                ],
                "id": 4576,
                "name": "VariableDeclaration",
                "src": "1423:33:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "globalConstraints",
                  "scope": 4586,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "length": null,
                      "type": "struct UController.GlobalConstraint storage ref[] storage pointer"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "GlobalConstraint",
                          "referencedDeclaration": 4563,
                          "type": "struct UController.GlobalConstraint storage pointer"
                        },
                        "id": 4577,
                        "name": "UserDefinedTypeName",
                        "src": "1567:16:10"
                      }
                    ],
                    "id": 4578,
                    "name": "ArrayTypeName",
                    "src": "1567:18:10"
                  }
                ],
                "id": 4579,
                "name": "VariableDeclaration",
                "src": "1567:36:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "globalConstraintsRegister",
                  "scope": 4586,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4580,
                        "name": "ElementaryTypeName",
                        "src": "1707:7:10"
                      },
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "GlobalConstraintRegister",
                          "referencedDeclaration": 4568,
                          "type": "struct UController.GlobalConstraintRegister storage pointer"
                        },
                        "id": 4581,
                        "name": "UserDefinedTypeName",
                        "src": "1716:24:10"
                      }
                    ],
                    "id": 4582,
                    "name": "Mapping",
                    "src": "1699:42:10"
                  }
                ],
                "id": 4583,
                "name": "VariableDeclaration",
                "src": "1699:68:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "exist",
                  "scope": 4586,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bool",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bool",
                      "type": "bool"
                    },
                    "id": 4584,
                    "name": "ElementaryTypeName",
                    "src": "1777:4:10"
                  }
                ],
                "id": 4585,
                "name": "VariableDeclaration",
                "src": "1777:10:10"
              }
            ],
            "id": 4586,
            "name": "StructDefinition",
            "src": "1294:500:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "organizations",
              "scope": 5865,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => struct UController.Organization storage ref)",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => struct UController.Organization storage ref)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 4587,
                    "name": "ElementaryTypeName",
                    "src": "1876:7:10"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Organization",
                      "referencedDeclaration": 4586,
                      "type": "struct UController.Organization storage pointer"
                    },
                    "id": 4588,
                    "name": "UserDefinedTypeName",
                    "src": "1885:12:10"
                  }
                ],
                "id": 4589,
                "name": "Mapping",
                "src": "1868:30:10"
              }
            ],
            "id": 4590,
            "name": "VariableDeclaration",
            "src": "1868:44:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "newControllers",
              "scope": 5865,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => address)",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => address)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 4591,
                    "name": "ElementaryTypeName",
                    "src": "2055:7:10"
                  },
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 4592,
                    "name": "ElementaryTypeName",
                    "src": "2064:7:10"
                  }
                ],
                "id": 4593,
                "name": "Mapping",
                "src": "2047:25:10"
              }
            ],
            "id": 4594,
            "name": "VariableDeclaration",
            "src": "2047:47:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "MintReputation"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4604,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4595,
                        "name": "ElementaryTypeName",
                        "src": "2181:7:10"
                      }
                    ],
                    "id": 4596,
                    "name": "VariableDeclaration",
                    "src": "2181:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_beneficiary",
                      "scope": 4604,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4597,
                        "name": "ElementaryTypeName",
                        "src": "2206:7:10"
                      }
                    ],
                    "id": 4598,
                    "name": "VariableDeclaration",
                    "src": "2206:28:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_amount",
                      "scope": 4604,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 4599,
                        "name": "ElementaryTypeName",
                        "src": "2236:6:10"
                      }
                    ],
                    "id": 4600,
                    "name": "VariableDeclaration",
                    "src": "2236:14:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 4604,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4601,
                        "name": "ElementaryTypeName",
                        "src": "2251:7:10"
                      }
                    ],
                    "id": 4602,
                    "name": "VariableDeclaration",
                    "src": "2251:23:10"
                  }
                ],
                "id": 4603,
                "name": "ParameterList",
                "src": "2180:95:10"
              }
            ],
            "id": 4604,
            "name": "EventDefinition",
            "src": "2159:117:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "MintTokens"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4614,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4605,
                        "name": "ElementaryTypeName",
                        "src": "2299:7:10"
                      }
                    ],
                    "id": 4606,
                    "name": "VariableDeclaration",
                    "src": "2299:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_beneficiary",
                      "scope": 4614,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4607,
                        "name": "ElementaryTypeName",
                        "src": "2324:7:10"
                      }
                    ],
                    "id": 4608,
                    "name": "VariableDeclaration",
                    "src": "2324:28:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_amount",
                      "scope": 4614,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 4609,
                        "name": "ElementaryTypeName",
                        "src": "2354:7:10"
                      }
                    ],
                    "id": 4610,
                    "name": "VariableDeclaration",
                    "src": "2354:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 4614,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4611,
                        "name": "ElementaryTypeName",
                        "src": "2371:7:10"
                      }
                    ],
                    "id": 4612,
                    "name": "VariableDeclaration",
                    "src": "2371:23:10"
                  }
                ],
                "id": 4613,
                "name": "ParameterList",
                "src": "2298:97:10"
              }
            ],
            "id": 4614,
            "name": "EventDefinition",
            "src": "2281:115:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "RegisterScheme"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4622,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4615,
                        "name": "ElementaryTypeName",
                        "src": "2423:7:10"
                      }
                    ],
                    "id": 4616,
                    "name": "VariableDeclaration",
                    "src": "2423:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_scheme",
                      "scope": 4622,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4617,
                        "name": "ElementaryTypeName",
                        "src": "2448:7:10"
                      }
                    ],
                    "id": 4618,
                    "name": "VariableDeclaration",
                    "src": "2448:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 4622,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4619,
                        "name": "ElementaryTypeName",
                        "src": "2472:7:10"
                      }
                    ],
                    "id": 4620,
                    "name": "VariableDeclaration",
                    "src": "2472:23:10"
                  }
                ],
                "id": 4621,
                "name": "ParameterList",
                "src": "2422:74:10"
              }
            ],
            "id": 4622,
            "name": "EventDefinition",
            "src": "2401:96:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "UnregisterScheme"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4630,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4623,
                        "name": "ElementaryTypeName",
                        "src": "2526:7:10"
                      }
                    ],
                    "id": 4624,
                    "name": "VariableDeclaration",
                    "src": "2526:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_scheme",
                      "scope": 4630,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4625,
                        "name": "ElementaryTypeName",
                        "src": "2551:7:10"
                      }
                    ],
                    "id": 4626,
                    "name": "VariableDeclaration",
                    "src": "2551:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 4630,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4627,
                        "name": "ElementaryTypeName",
                        "src": "2576:7:10"
                      }
                    ],
                    "id": 4628,
                    "name": "VariableDeclaration",
                    "src": "2576:23:10"
                  }
                ],
                "id": 4629,
                "name": "ParameterList",
                "src": "2525:75:10"
              }
            ],
            "id": 4630,
            "name": "EventDefinition",
            "src": "2502:99:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "GenericAction"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4637,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4631,
                        "name": "ElementaryTypeName",
                        "src": "2627:7:10"
                      }
                    ],
                    "id": 4632,
                    "name": "VariableDeclaration",
                    "src": "2627:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_params",
                      "scope": 4637,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "bytes32[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 4633,
                            "name": "ElementaryTypeName",
                            "src": "2652:7:10"
                          }
                        ],
                        "id": 4634,
                        "name": "ArrayTypeName",
                        "src": "2652:9:10"
                      }
                    ],
                    "id": 4635,
                    "name": "VariableDeclaration",
                    "src": "2652:17:10"
                  }
                ],
                "id": 4636,
                "name": "ParameterList",
                "src": "2626:44:10"
              }
            ],
            "id": 4637,
            "name": "EventDefinition",
            "src": "2606:65:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "SendEther"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4645,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4638,
                        "name": "ElementaryTypeName",
                        "src": "2693:7:10"
                      }
                    ],
                    "id": 4639,
                    "name": "VariableDeclaration",
                    "src": "2693:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_amountInWei",
                      "scope": 4645,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 4640,
                        "name": "ElementaryTypeName",
                        "src": "2718:4:10"
                      }
                    ],
                    "id": 4641,
                    "name": "VariableDeclaration",
                    "src": "2718:17:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_to",
                      "scope": 4645,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4642,
                        "name": "ElementaryTypeName",
                        "src": "2737:7:10"
                      }
                    ],
                    "id": 4643,
                    "name": "VariableDeclaration",
                    "src": "2737:19:10"
                  }
                ],
                "id": 4644,
                "name": "ParameterList",
                "src": "2692:65:10"
              }
            ],
            "id": 4645,
            "name": "EventDefinition",
            "src": "2676:82:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenTransfer"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4655,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4646,
                        "name": "ElementaryTypeName",
                        "src": "2792:7:10"
                      }
                    ],
                    "id": 4647,
                    "name": "VariableDeclaration",
                    "src": "2792:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 4655,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4648,
                        "name": "ElementaryTypeName",
                        "src": "2817:7:10"
                      }
                    ],
                    "id": 4649,
                    "name": "VariableDeclaration",
                    "src": "2817:30:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_to",
                      "scope": 4655,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4650,
                        "name": "ElementaryTypeName",
                        "src": "2849:7:10"
                      }
                    ],
                    "id": 4651,
                    "name": "VariableDeclaration",
                    "src": "2849:19:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 4655,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 4652,
                        "name": "ElementaryTypeName",
                        "src": "2870:4:10"
                      }
                    ],
                    "id": 4653,
                    "name": "VariableDeclaration",
                    "src": "2870:11:10"
                  }
                ],
                "id": 4654,
                "name": "ParameterList",
                "src": "2791:91:10"
              }
            ],
            "id": 4655,
            "name": "EventDefinition",
            "src": "2763:120:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenTransferFrom"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4667,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4656,
                        "name": "ElementaryTypeName",
                        "src": "2921:7:10"
                      }
                    ],
                    "id": 4657,
                    "name": "VariableDeclaration",
                    "src": "2921:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 4667,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4658,
                        "name": "ElementaryTypeName",
                        "src": "2946:7:10"
                      }
                    ],
                    "id": 4659,
                    "name": "VariableDeclaration",
                    "src": "2946:30:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_from",
                      "scope": 4667,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4660,
                        "name": "ElementaryTypeName",
                        "src": "2978:7:10"
                      }
                    ],
                    "id": 4661,
                    "name": "VariableDeclaration",
                    "src": "2978:13:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_to",
                      "scope": 4667,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4662,
                        "name": "ElementaryTypeName",
                        "src": "2993:7:10"
                      }
                    ],
                    "id": 4663,
                    "name": "VariableDeclaration",
                    "src": "2993:11:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 4667,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 4664,
                        "name": "ElementaryTypeName",
                        "src": "3006:4:10"
                      }
                    ],
                    "id": 4665,
                    "name": "VariableDeclaration",
                    "src": "3006:11:10"
                  }
                ],
                "id": 4666,
                "name": "ParameterList",
                "src": "2920:98:10"
              }
            ],
            "id": 4667,
            "name": "EventDefinition",
            "src": "2888:131:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenIncreaseApproval"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4677,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4668,
                        "name": "ElementaryTypeName",
                        "src": "3061:7:10"
                      }
                    ],
                    "id": 4669,
                    "name": "VariableDeclaration",
                    "src": "3061:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 4677,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10855,
                          "type": "contract StandardToken"
                        },
                        "id": 4670,
                        "name": "UserDefinedTypeName",
                        "src": "3086:13:10"
                      }
                    ],
                    "id": 4671,
                    "name": "VariableDeclaration",
                    "src": "3086:36:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_spender",
                      "scope": 4677,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4672,
                        "name": "ElementaryTypeName",
                        "src": "3124:7:10"
                      }
                    ],
                    "id": 4673,
                    "name": "VariableDeclaration",
                    "src": "3124:16:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 4677,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 4674,
                        "name": "ElementaryTypeName",
                        "src": "3142:4:10"
                      }
                    ],
                    "id": 4675,
                    "name": "VariableDeclaration",
                    "src": "3142:11:10"
                  }
                ],
                "id": 4676,
                "name": "ParameterList",
                "src": "3060:94:10"
              }
            ],
            "id": 4677,
            "name": "EventDefinition",
            "src": "3024:131:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenDecreaseApproval"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4687,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4678,
                        "name": "ElementaryTypeName",
                        "src": "3197:7:10"
                      }
                    ],
                    "id": 4679,
                    "name": "VariableDeclaration",
                    "src": "3197:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 4687,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10855,
                          "type": "contract StandardToken"
                        },
                        "id": 4680,
                        "name": "UserDefinedTypeName",
                        "src": "3222:13:10"
                      }
                    ],
                    "id": 4681,
                    "name": "VariableDeclaration",
                    "src": "3222:36:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_spender",
                      "scope": 4687,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4682,
                        "name": "ElementaryTypeName",
                        "src": "3260:7:10"
                      }
                    ],
                    "id": 4683,
                    "name": "VariableDeclaration",
                    "src": "3260:16:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 4687,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 4684,
                        "name": "ElementaryTypeName",
                        "src": "3278:4:10"
                      }
                    ],
                    "id": 4685,
                    "name": "VariableDeclaration",
                    "src": "3278:11:10"
                  }
                ],
                "id": 4686,
                "name": "ParameterList",
                "src": "3196:94:10"
              }
            ],
            "id": 4687,
            "name": "EventDefinition",
            "src": "3160:131:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "AddGlobalConstraint"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_globalConstraint",
                      "scope": 4693,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4688,
                        "name": "ElementaryTypeName",
                        "src": "3322:7:10"
                      }
                    ],
                    "id": 4689,
                    "name": "VariableDeclaration",
                    "src": "3322:25:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_params",
                      "scope": 4693,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 4690,
                        "name": "ElementaryTypeName",
                        "src": "3349:7:10"
                      }
                    ],
                    "id": 4691,
                    "name": "VariableDeclaration",
                    "src": "3349:15:10"
                  }
                ],
                "id": 4692,
                "name": "ParameterList",
                "src": "3321:44:10"
              }
            ],
            "id": 4693,
            "name": "EventDefinition",
            "src": "3296:70:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "RemoveGlobalConstraint"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_globalConstraint",
                      "scope": 4699,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4694,
                        "name": "ElementaryTypeName",
                        "src": "3400:7:10"
                      }
                    ],
                    "id": 4695,
                    "name": "VariableDeclaration",
                    "src": "3400:25:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_index",
                      "scope": 4699,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 4696,
                        "name": "ElementaryTypeName",
                        "src": "3427:7:10"
                      }
                    ],
                    "id": 4697,
                    "name": "VariableDeclaration",
                    "src": "3427:14:10"
                  }
                ],
                "id": 4698,
                "name": "ParameterList",
                "src": "3399:43:10"
              }
            ],
            "id": 4699,
            "name": "EventDefinition",
            "src": "3371:72:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "UpgradeController"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_oldController",
                      "scope": 4707,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4700,
                        "name": "ElementaryTypeName",
                        "src": "3472:7:10"
                      }
                    ],
                    "id": 4701,
                    "name": "VariableDeclaration",
                    "src": "3472:22:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_newController",
                      "scope": 4707,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4702,
                        "name": "ElementaryTypeName",
                        "src": "3495:7:10"
                      }
                    ],
                    "id": 4703,
                    "name": "VariableDeclaration",
                    "src": "3495:22:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_avatar",
                      "scope": 4707,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4704,
                        "name": "ElementaryTypeName",
                        "src": "3518:7:10"
                      }
                    ],
                    "id": 4705,
                    "name": "VariableDeclaration",
                    "src": "3518:15:10"
                  }
                ],
                "id": 4706,
                "name": "ParameterList",
                "src": "3471:63:10"
              }
            ],
            "id": 4707,
            "name": "EventDefinition",
            "src": "3448:87:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "UController",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 4708,
                "name": "ParameterList",
                "src": "3561:2:10"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 4709,
                "name": "ParameterList",
                "src": "3570:0:10"
              },
              {
                "attributes": {
                  "statements": [
                    null
                  ]
                },
                "children": [],
                "id": 4710,
                "name": "Block",
                "src": "3570:2:10"
              }
            ],
            "id": 4711,
            "name": "FunctionDefinition",
            "src": "3541:31:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "newOrganization",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 4795,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Avatar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Avatar",
                          "referencedDeclaration": 3065,
                          "type": "contract Avatar"
                        },
                        "id": 4712,
                        "name": "UserDefinedTypeName",
                        "src": "3752:6:10"
                      }
                    ],
                    "id": 4713,
                    "name": "VariableDeclaration",
                    "src": "3752:14:10"
                  }
                ],
                "id": 4714,
                "name": "ParameterList",
                "src": "3742:30:10"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 4715,
                "name": "ParameterList",
                "src": "3784:0:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 4716,
                            "name": "Identifier",
                            "src": "3794:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!",
                              "prefix": true,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "exist",
                                  "referencedDeclaration": 4585,
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4590,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 4717,
                                        "name": "Identifier",
                                        "src": "3803:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "address",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_contract$_Avatar_$3065",
                                                  "typeString": "contract Avatar"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(address)",
                                              "value": "address"
                                            },
                                            "id": 4718,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "3817:7:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4713,
                                              "type": "contract Avatar",
                                              "value": "_avatar"
                                            },
                                            "id": 4719,
                                            "name": "Identifier",
                                            "src": "3825:7:10"
                                          }
                                        ],
                                        "id": 4720,
                                        "name": "FunctionCall",
                                        "src": "3817:16:10"
                                      }
                                    ],
                                    "id": 4721,
                                    "name": "IndexAccess",
                                    "src": "3803:31:10"
                                  }
                                ],
                                "id": 4722,
                                "name": "MemberAccess",
                                "src": "3803:37:10"
                              }
                            ],
                            "id": 4723,
                            "name": "UnaryOperation",
                            "src": "3802:38:10"
                          }
                        ],
                        "id": 4724,
                        "name": "FunctionCall",
                        "src": "3794:47:10"
                      }
                    ],
                    "id": 4725,
                    "name": "ExpressionStatement",
                    "src": "3794:47:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 4726,
                            "name": "Identifier",
                            "src": "3851:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "owner",
                                      "referencedDeclaration": 10249,
                                      "type": "function () view external returns (address)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4713,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 4727,
                                        "name": "Identifier",
                                        "src": "3859:7:10"
                                      }
                                    ],
                                    "id": 4728,
                                    "name": "MemberAccess",
                                    "src": "3859:13:10"
                                  }
                                ],
                                "id": 4729,
                                "name": "FunctionCall",
                                "src": "3859:15:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_UController_$5865",
                                          "typeString": "contract UController"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 4730,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "3878:7:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10926,
                                      "type": "contract UController",
                                      "value": "this"
                                    },
                                    "id": 4731,
                                    "name": "Identifier",
                                    "src": "3886:4:10"
                                  }
                                ],
                                "id": 4732,
                                "name": "FunctionCall",
                                "src": "3878:13:10"
                              }
                            ],
                            "id": 4733,
                            "name": "BinaryOperation",
                            "src": "3859:32:10"
                          }
                        ],
                        "id": 4734,
                        "name": "FunctionCall",
                        "src": "3851:41:10"
                      }
                    ],
                    "id": 4735,
                    "name": "ExpressionStatement",
                    "src": "3851:41:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "exist",
                              "referencedDeclaration": 4585,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UController.Organization storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4590,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 4736,
                                    "name": "Identifier",
                                    "src": "3902:13:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "address",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_Avatar_$3065",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(address)",
                                          "value": "address"
                                        },
                                        "id": 4737,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "3916:7:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4713,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 4738,
                                        "name": "Identifier",
                                        "src": "3924:7:10"
                                      }
                                    ],
                                    "id": 4739,
                                    "name": "FunctionCall",
                                    "src": "3916:16:10"
                                  }
                                ],
                                "id": 4740,
                                "name": "IndexAccess",
                                "src": "3902:31:10"
                              }
                            ],
                            "id": 4741,
                            "name": "MemberAccess",
                            "src": "3902:37:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "74727565",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "true"
                            },
                            "id": 4742,
                            "name": "Literal",
                            "src": "3942:4:10"
                          }
                        ],
                        "id": 4743,
                        "name": "Assignment",
                        "src": "3902:44:10"
                      }
                    ],
                    "id": 4744,
                    "name": "ExpressionStatement",
                    "src": "3902:44:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract DAOToken"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "nativeToken",
                              "referencedDeclaration": 4570,
                              "type": "contract DAOToken"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UController.Organization storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4590,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 4745,
                                    "name": "Identifier",
                                    "src": "3956:13:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "address",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_Avatar_$3065",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(address)",
                                          "value": "address"
                                        },
                                        "id": 4746,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "3970:7:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4713,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 4747,
                                        "name": "Identifier",
                                        "src": "3978:7:10"
                                      }
                                    ],
                                    "id": 4748,
                                    "name": "FunctionCall",
                                    "src": "3970:16:10"
                                  }
                                ],
                                "id": 4749,
                                "name": "IndexAccess",
                                "src": "3956:31:10"
                              }
                            ],
                            "id": 4750,
                            "name": "MemberAccess",
                            "src": "3956:43:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract DAOToken",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "nativeToken",
                                  "referencedDeclaration": 2796,
                                  "type": "function () view external returns (contract DAOToken)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4713,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 4751,
                                    "name": "Identifier",
                                    "src": "4002:7:10"
                                  }
                                ],
                                "id": 4752,
                                "name": "MemberAccess",
                                "src": "4002:19:10"
                              }
                            ],
                            "id": 4753,
                            "name": "FunctionCall",
                            "src": "4002:21:10"
                          }
                        ],
                        "id": 4754,
                        "name": "Assignment",
                        "src": "3956:67:10"
                      }
                    ],
                    "id": 4755,
                    "name": "ExpressionStatement",
                    "src": "3956:67:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract Reputation"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "nativeReputation",
                              "referencedDeclaration": 4572,
                              "type": "contract Reputation"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UController.Organization storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4590,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 4756,
                                    "name": "Identifier",
                                    "src": "4033:13:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "address",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_Avatar_$3065",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(address)",
                                          "value": "address"
                                        },
                                        "id": 4757,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4047:7:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4713,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 4758,
                                        "name": "Identifier",
                                        "src": "4055:7:10"
                                      }
                                    ],
                                    "id": 4759,
                                    "name": "FunctionCall",
                                    "src": "4047:16:10"
                                  }
                                ],
                                "id": 4760,
                                "name": "IndexAccess",
                                "src": "4033:31:10"
                              }
                            ],
                            "id": 4761,
                            "name": "MemberAccess",
                            "src": "4033:48:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract Reputation",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "nativeReputation",
                                  "referencedDeclaration": 2798,
                                  "type": "function () view external returns (contract Reputation)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4713,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 4762,
                                    "name": "Identifier",
                                    "src": "4084:7:10"
                                  }
                                ],
                                "id": 4763,
                                "name": "MemberAccess",
                                "src": "4084:24:10"
                              }
                            ],
                            "id": 4764,
                            "name": "FunctionCall",
                            "src": "4084:26:10"
                          }
                        ],
                        "id": 4765,
                        "name": "Assignment",
                        "src": "4033:77:10"
                      }
                    ],
                    "id": 4766,
                    "name": "ExpressionStatement",
                    "src": "4033:77:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct UController.Scheme storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4576,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4590,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 4767,
                                        "name": "Identifier",
                                        "src": "4120:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "address",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_contract$_Avatar_$3065",
                                                  "typeString": "contract Avatar"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(address)",
                                              "value": "address"
                                            },
                                            "id": 4768,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "4134:7:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4713,
                                              "type": "contract Avatar",
                                              "value": "_avatar"
                                            },
                                            "id": 4769,
                                            "name": "Identifier",
                                            "src": "4142:7:10"
                                          }
                                        ],
                                        "id": 4770,
                                        "name": "FunctionCall",
                                        "src": "4134:16:10"
                                      }
                                    ],
                                    "id": 4771,
                                    "name": "IndexAccess",
                                    "src": "4120:31:10"
                                  }
                                ],
                                "id": 4772,
                                "name": "MemberAccess",
                                "src": "4120:39:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 4773,
                                    "name": "Identifier",
                                    "src": "4160:3:10"
                                  }
                                ],
                                "id": 4774,
                                "name": "MemberAccess",
                                "src": "4160:10:10"
                              }
                            ],
                            "id": 4775,
                            "name": "IndexAccess",
                            "src": "4120:51:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": true,
                              "lValueRequested": false,
                              "names": [
                                "paramsHash",
                                "permissions"
                              ],
                              "type": "struct UController.Scheme memory",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4558,
                                  "type": "type(struct UController.Scheme storage pointer)",
                                  "value": "Scheme"
                                },
                                "id": 4776,
                                "name": "Identifier",
                                "src": "4174:6:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes32",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes32)",
                                      "value": "bytes32"
                                    },
                                    "id": 4777,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4194:7:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 4778,
                                    "name": "Literal",
                                    "src": "4202:1:10"
                                  }
                                ],
                                "id": 4779,
                                "name": "FunctionCall",
                                "src": "4194:10:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_15_by_1",
                                          "typeString": "int_const 15"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 4780,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4218:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "307846",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 15",
                                      "value": "0xF"
                                    },
                                    "id": 4781,
                                    "name": "Literal",
                                    "src": "4225:3:10"
                                  }
                                ],
                                "id": 4782,
                                "name": "FunctionCall",
                                "src": "4218:11:10"
                              }
                            ],
                            "id": 4783,
                            "name": "FunctionCall",
                            "src": "4174:57:10"
                          }
                        ],
                        "id": 4784,
                        "name": "Assignment",
                        "src": "4120:111:10"
                      }
                    ],
                    "id": 4785,
                    "name": "ExpressionStatement",
                    "src": "4120:111:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Avatar_$3065",
                                  "typeString": "contract Avatar"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4622,
                              "type": "function (address,address,address)",
                              "value": "RegisterScheme"
                            },
                            "id": 4786,
                            "name": "Identifier",
                            "src": "4241:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 4787,
                                "name": "Identifier",
                                "src": "4256:3:10"
                              }
                            ],
                            "id": 4788,
                            "name": "MemberAccess",
                            "src": "4256:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 4789,
                                "name": "Identifier",
                                "src": "4268:3:10"
                              }
                            ],
                            "id": 4790,
                            "name": "MemberAccess",
                            "src": "4268:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4713,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 4791,
                            "name": "Identifier",
                            "src": "4279:7:10"
                          }
                        ],
                        "id": 4792,
                        "name": "FunctionCall",
                        "src": "4241:46:10"
                      }
                    ],
                    "id": 4793,
                    "name": "ExpressionStatement",
                    "src": "4241:46:10"
                  }
                ],
                "id": 4794,
                "name": "Block",
                "src": "3784:510:10"
              }
            ],
            "id": 4795,
            "name": "FunctionDefinition",
            "src": "3718:576:10"
          },
          {
            "attributes": {
              "name": "onlyRegisteredScheme",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "avatar",
                      "scope": 4820,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4796,
                        "name": "ElementaryTypeName",
                        "src": "4346:7:10"
                      }
                    ],
                    "id": 4797,
                    "name": "VariableDeclaration",
                    "src": "4346:14:10"
                  }
                ],
                "id": 4798,
                "name": "ParameterList",
                "src": "4345:16:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 4799,
                            "name": "Identifier",
                            "src": "4372:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "permissions",
                                      "referencedDeclaration": 4557,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.Scheme storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "schemes",
                                              "referencedDeclaration": 4576,
                                              "type": "mapping(address => struct UController.Scheme storage ref)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.Organization storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4590,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 4800,
                                                    "name": "Identifier",
                                                    "src": "4380:13:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4797,
                                                      "type": "address",
                                                      "value": "avatar"
                                                    },
                                                    "id": 4801,
                                                    "name": "Identifier",
                                                    "src": "4394:6:10"
                                                  }
                                                ],
                                                "id": 4802,
                                                "name": "IndexAccess",
                                                "src": "4380:21:10"
                                              }
                                            ],
                                            "id": 4803,
                                            "name": "MemberAccess",
                                            "src": "4380:29:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "sender",
                                              "referencedDeclaration": null,
                                              "type": "address"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10867,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 4804,
                                                "name": "Identifier",
                                                "src": "4410:3:10"
                                              }
                                            ],
                                            "id": 4805,
                                            "name": "MemberAccess",
                                            "src": "4410:10:10"
                                          }
                                        ],
                                        "id": 4806,
                                        "name": "IndexAccess",
                                        "src": "4380:41:10"
                                      }
                                    ],
                                    "id": 4807,
                                    "name": "MemberAccess",
                                    "src": "4380:53:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 4808,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4434:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 4809,
                                        "name": "Literal",
                                        "src": "4441:1:10"
                                      }
                                    ],
                                    "id": 4810,
                                    "name": "FunctionCall",
                                    "src": "4434:9:10"
                                  }
                                ],
                                "id": 4811,
                                "name": "BinaryOperation",
                                "src": "4380:63:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 4812,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4447:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "31",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "1"
                                    },
                                    "id": 4813,
                                    "name": "Literal",
                                    "src": "4454:1:10"
                                  }
                                ],
                                "id": 4814,
                                "name": "FunctionCall",
                                "src": "4447:9:10"
                              }
                            ],
                            "id": 4815,
                            "name": "BinaryOperation",
                            "src": "4380:76:10"
                          }
                        ],
                        "id": 4816,
                        "name": "FunctionCall",
                        "src": "4372:85:10"
                      }
                    ],
                    "id": 4817,
                    "name": "ExpressionStatement",
                    "src": "4372:85:10"
                  },
                  {
                    "id": 4818,
                    "name": "PlaceholderStatement",
                    "src": "4467:1:10"
                  }
                ],
                "id": 4819,
                "name": "Block",
                "src": "4362:113:10"
              }
            ],
            "id": 4820,
            "name": "ModifierDefinition",
            "src": "4316:159:10"
          },
          {
            "attributes": {
              "name": "onlyRegisteringSchemes",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "avatar",
                      "scope": 4845,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4821,
                        "name": "ElementaryTypeName",
                        "src": "4513:7:10"
                      }
                    ],
                    "id": 4822,
                    "name": "VariableDeclaration",
                    "src": "4513:14:10"
                  }
                ],
                "id": 4823,
                "name": "ParameterList",
                "src": "4512:16:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 4824,
                            "name": "Identifier",
                            "src": "4539:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "permissions",
                                      "referencedDeclaration": 4557,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.Scheme storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "schemes",
                                              "referencedDeclaration": 4576,
                                              "type": "mapping(address => struct UController.Scheme storage ref)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.Organization storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4590,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 4825,
                                                    "name": "Identifier",
                                                    "src": "4547:13:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4822,
                                                      "type": "address",
                                                      "value": "avatar"
                                                    },
                                                    "id": 4826,
                                                    "name": "Identifier",
                                                    "src": "4561:6:10"
                                                  }
                                                ],
                                                "id": 4827,
                                                "name": "IndexAccess",
                                                "src": "4547:21:10"
                                              }
                                            ],
                                            "id": 4828,
                                            "name": "MemberAccess",
                                            "src": "4547:29:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "sender",
                                              "referencedDeclaration": null,
                                              "type": "address"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10867,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 4829,
                                                "name": "Identifier",
                                                "src": "4577:3:10"
                                              }
                                            ],
                                            "id": 4830,
                                            "name": "MemberAccess",
                                            "src": "4577:10:10"
                                          }
                                        ],
                                        "id": 4831,
                                        "name": "IndexAccess",
                                        "src": "4547:41:10"
                                      }
                                    ],
                                    "id": 4832,
                                    "name": "MemberAccess",
                                    "src": "4547:53:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_2_by_1",
                                              "typeString": "int_const 2"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 4833,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4601:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "32",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 2",
                                          "value": "2"
                                        },
                                        "id": 4834,
                                        "name": "Literal",
                                        "src": "4608:1:10"
                                      }
                                    ],
                                    "id": 4835,
                                    "name": "FunctionCall",
                                    "src": "4601:9:10"
                                  }
                                ],
                                "id": 4836,
                                "name": "BinaryOperation",
                                "src": "4547:63:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_2_by_1",
                                          "typeString": "int_const 2"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 4837,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4614:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "32",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 2",
                                      "value": "2"
                                    },
                                    "id": 4838,
                                    "name": "Literal",
                                    "src": "4621:1:10"
                                  }
                                ],
                                "id": 4839,
                                "name": "FunctionCall",
                                "src": "4614:9:10"
                              }
                            ],
                            "id": 4840,
                            "name": "BinaryOperation",
                            "src": "4547:76:10"
                          }
                        ],
                        "id": 4841,
                        "name": "FunctionCall",
                        "src": "4539:85:10"
                      }
                    ],
                    "id": 4842,
                    "name": "ExpressionStatement",
                    "src": "4539:85:10"
                  },
                  {
                    "id": 4843,
                    "name": "PlaceholderStatement",
                    "src": "4634:1:10"
                  }
                ],
                "id": 4844,
                "name": "Block",
                "src": "4529:113:10"
              }
            ],
            "id": 4845,
            "name": "ModifierDefinition",
            "src": "4481:161:10"
          },
          {
            "attributes": {
              "name": "onlyGlobalConstraintsScheme",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "avatar",
                      "scope": 4870,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4846,
                        "name": "ElementaryTypeName",
                        "src": "4685:7:10"
                      }
                    ],
                    "id": 4847,
                    "name": "VariableDeclaration",
                    "src": "4685:14:10"
                  }
                ],
                "id": 4848,
                "name": "ParameterList",
                "src": "4684:16:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 4849,
                            "name": "Identifier",
                            "src": "4711:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "permissions",
                                      "referencedDeclaration": 4557,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.Scheme storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "schemes",
                                              "referencedDeclaration": 4576,
                                              "type": "mapping(address => struct UController.Scheme storage ref)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.Organization storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4590,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 4850,
                                                    "name": "Identifier",
                                                    "src": "4719:13:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4847,
                                                      "type": "address",
                                                      "value": "avatar"
                                                    },
                                                    "id": 4851,
                                                    "name": "Identifier",
                                                    "src": "4733:6:10"
                                                  }
                                                ],
                                                "id": 4852,
                                                "name": "IndexAccess",
                                                "src": "4719:21:10"
                                              }
                                            ],
                                            "id": 4853,
                                            "name": "MemberAccess",
                                            "src": "4719:29:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "sender",
                                              "referencedDeclaration": null,
                                              "type": "address"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10867,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 4854,
                                                "name": "Identifier",
                                                "src": "4749:3:10"
                                              }
                                            ],
                                            "id": 4855,
                                            "name": "MemberAccess",
                                            "src": "4749:10:10"
                                          }
                                        ],
                                        "id": 4856,
                                        "name": "IndexAccess",
                                        "src": "4719:41:10"
                                      }
                                    ],
                                    "id": 4857,
                                    "name": "MemberAccess",
                                    "src": "4719:53:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_4_by_1",
                                              "typeString": "int_const 4"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 4858,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4773:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "34",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 4",
                                          "value": "4"
                                        },
                                        "id": 4859,
                                        "name": "Literal",
                                        "src": "4780:1:10"
                                      }
                                    ],
                                    "id": 4860,
                                    "name": "FunctionCall",
                                    "src": "4773:9:10"
                                  }
                                ],
                                "id": 4861,
                                "name": "BinaryOperation",
                                "src": "4719:63:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 4862,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4786:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "34",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 4",
                                      "value": "4"
                                    },
                                    "id": 4863,
                                    "name": "Literal",
                                    "src": "4793:1:10"
                                  }
                                ],
                                "id": 4864,
                                "name": "FunctionCall",
                                "src": "4786:9:10"
                              }
                            ],
                            "id": 4865,
                            "name": "BinaryOperation",
                            "src": "4719:76:10"
                          }
                        ],
                        "id": 4866,
                        "name": "FunctionCall",
                        "src": "4711:85:10"
                      }
                    ],
                    "id": 4867,
                    "name": "ExpressionStatement",
                    "src": "4711:85:10"
                  },
                  {
                    "id": 4868,
                    "name": "PlaceholderStatement",
                    "src": "4806:1:10"
                  }
                ],
                "id": 4869,
                "name": "Block",
                "src": "4701:113:10"
              }
            ],
            "id": 4870,
            "name": "ModifierDefinition",
            "src": "4648:166:10"
          },
          {
            "attributes": {
              "name": "onlyUpgradingScheme",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 4895,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4871,
                        "name": "ElementaryTypeName",
                        "src": "4849:7:10"
                      }
                    ],
                    "id": 4872,
                    "name": "VariableDeclaration",
                    "src": "4849:15:10"
                  }
                ],
                "id": 4873,
                "name": "ParameterList",
                "src": "4848:17:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 4874,
                            "name": "Identifier",
                            "src": "4876:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "permissions",
                                      "referencedDeclaration": 4557,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.Scheme storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "schemes",
                                              "referencedDeclaration": 4576,
                                              "type": "mapping(address => struct UController.Scheme storage ref)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.Organization storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4590,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 4875,
                                                    "name": "Identifier",
                                                    "src": "4884:13:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4872,
                                                      "type": "address",
                                                      "value": "_avatar"
                                                    },
                                                    "id": 4876,
                                                    "name": "Identifier",
                                                    "src": "4898:7:10"
                                                  }
                                                ],
                                                "id": 4877,
                                                "name": "IndexAccess",
                                                "src": "4884:22:10"
                                              }
                                            ],
                                            "id": 4878,
                                            "name": "MemberAccess",
                                            "src": "4884:30:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "sender",
                                              "referencedDeclaration": null,
                                              "type": "address"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10867,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 4879,
                                                "name": "Identifier",
                                                "src": "4915:3:10"
                                              }
                                            ],
                                            "id": 4880,
                                            "name": "MemberAccess",
                                            "src": "4915:10:10"
                                          }
                                        ],
                                        "id": 4881,
                                        "name": "IndexAccess",
                                        "src": "4884:42:10"
                                      }
                                    ],
                                    "id": 4882,
                                    "name": "MemberAccess",
                                    "src": "4884:54:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_8_by_1",
                                              "typeString": "int_const 8"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 4883,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4939:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "38",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 8",
                                          "value": "8"
                                        },
                                        "id": 4884,
                                        "name": "Literal",
                                        "src": "4946:1:10"
                                      }
                                    ],
                                    "id": 4885,
                                    "name": "FunctionCall",
                                    "src": "4939:9:10"
                                  }
                                ],
                                "id": 4886,
                                "name": "BinaryOperation",
                                "src": "4884:64:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_8_by_1",
                                          "typeString": "int_const 8"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 4887,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4952:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "38",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 8",
                                      "value": "8"
                                    },
                                    "id": 4888,
                                    "name": "Literal",
                                    "src": "4959:1:10"
                                  }
                                ],
                                "id": 4889,
                                "name": "FunctionCall",
                                "src": "4952:9:10"
                              }
                            ],
                            "id": 4890,
                            "name": "BinaryOperation",
                            "src": "4884:77:10"
                          }
                        ],
                        "id": 4891,
                        "name": "FunctionCall",
                        "src": "4876:86:10"
                      }
                    ],
                    "id": 4892,
                    "name": "ExpressionStatement",
                    "src": "4876:86:10"
                  },
                  {
                    "id": 4893,
                    "name": "PlaceholderStatement",
                    "src": "4972:1:10"
                  }
                ],
                "id": 4894,
                "name": "Block",
                "src": "4866:114:10"
              }
            ],
            "id": 4895,
            "name": "ModifierDefinition",
            "src": "4820:160:10"
          },
          {
            "attributes": {
              "name": "onlySubjectToConstraint",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "func",
                      "scope": 4979,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 4896,
                        "name": "ElementaryTypeName",
                        "src": "5019:7:10"
                      }
                    ],
                    "id": 4897,
                    "name": "VariableDeclaration",
                    "src": "5019:12:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 4979,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4898,
                        "name": "ElementaryTypeName",
                        "src": "5032:7:10"
                      }
                    ],
                    "id": 4899,
                    "name": "VariableDeclaration",
                    "src": "5032:15:10"
                  }
                ],
                "id": 4900,
                "name": "ParameterList",
                "src": "5018:30:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        null
                      ],
                      "initialValue": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "index",
                          "scope": 4979,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 4901,
                            "name": "ElementaryTypeName",
                            "src": "5059:4:10"
                          }
                        ],
                        "id": 4902,
                        "name": "VariableDeclaration",
                        "src": "5059:10:10"
                      }
                    ],
                    "id": 4903,
                    "name": "VariableDeclarationStatement",
                    "src": "5059:10:10"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        4907
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "globalConstraints",
                          "scope": 4979,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct UController.GlobalConstraint memory[] memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "length": null,
                              "type": "struct UController.GlobalConstraint storage ref[] storage pointer"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "contractScope": null,
                                  "name": "GlobalConstraint",
                                  "referencedDeclaration": 4563,
                                  "type": "struct UController.GlobalConstraint storage pointer"
                                },
                                "id": 4905,
                                "name": "UserDefinedTypeName",
                                "src": "5079:16:10"
                              }
                            ],
                            "id": 4906,
                            "name": "ArrayTypeName",
                            "src": "5079:18:10"
                          }
                        ],
                        "id": 4907,
                        "name": "VariableDeclaration",
                        "src": "5079:43:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "globalConstraints",
                          "referencedDeclaration": 4579,
                          "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.Organization storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4590,
                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                  "value": "organizations"
                                },
                                "id": 4908,
                                "name": "Identifier",
                                "src": "5125:13:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4899,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 4909,
                                "name": "Identifier",
                                "src": "5139:7:10"
                              }
                            ],
                            "id": 4910,
                            "name": "IndexAccess",
                            "src": "5125:22:10"
                          }
                        ],
                        "id": 4911,
                        "name": "MemberAccess",
                        "src": "5125:40:10"
                      }
                    ],
                    "id": 4912,
                    "name": "VariableDeclarationStatement",
                    "src": "5079:86:10"
                  },
                  {
                    "children": [
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4902,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 4913,
                                "name": "Identifier",
                                "src": "5180:5:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 4914,
                                "name": "Literal",
                                "src": "5188:1:10"
                              }
                            ],
                            "id": 4915,
                            "name": "Assignment",
                            "src": "5180:9:10"
                          }
                        ],
                        "id": 4916,
                        "name": "ExpressionStatement",
                        "src": "5180:9:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4902,
                              "type": "uint256",
                              "value": "index"
                            },
                            "id": 4917,
                            "name": "Identifier",
                            "src": "5190:5:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4907,
                                  "type": "struct UController.GlobalConstraint memory[] memory",
                                  "value": "globalConstraints"
                                },
                                "id": 4918,
                                "name": "Identifier",
                                "src": "5196:17:10"
                              }
                            ],
                            "id": 4919,
                            "name": "MemberAccess",
                            "src": "5196:24:10"
                          }
                        ],
                        "id": 4920,
                        "name": "BinaryOperation",
                        "src": "5190:30:10"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4902,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 4921,
                                "name": "Identifier",
                                "src": "5221:5:10"
                              }
                            ],
                            "id": 4922,
                            "name": "UnaryOperation",
                            "src": "5221:7:10"
                          }
                        ],
                        "id": 4923,
                        "name": "ExpressionStatement",
                        "src": "5221:7:10"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10870,
                                      "type": "function (bool) pure",
                                      "value": "require"
                                    },
                                    "id": 4924,
                                    "name": "Identifier",
                                    "src": "5244:7:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bool",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "pre",
                                          "referencedDeclaration": 5878,
                                          "type": "function (address,bytes32,bytes32) external returns (bool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "contract GlobalConstraintInterface"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "isStructConstructorCall": false,
                                                  "lValueRequested": false,
                                                  "names": [
                                                    null
                                                  ],
                                                  "type": "contract GlobalConstraintInterface",
                                                  "type_conversion": true
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": [
                                                        {
                                                          "typeIdentifier": "t_address",
                                                          "typeString": "address"
                                                        }
                                                      ],
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5890,
                                                      "type": "type(contract GlobalConstraintInterface)",
                                                      "value": "GlobalConstraintInterface"
                                                    },
                                                    "id": 4925,
                                                    "name": "Identifier",
                                                    "src": "5253:25:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "gcAddress",
                                                      "referencedDeclaration": 4560,
                                                      "type": "address"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "isConstant": false,
                                                          "isLValue": true,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "type": "struct UController.GlobalConstraint memory"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 4907,
                                                              "type": "struct UController.GlobalConstraint memory[] memory",
                                                              "value": "globalConstraints"
                                                            },
                                                            "id": 4926,
                                                            "name": "Identifier",
                                                            "src": "5279:17:10"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 4902,
                                                              "type": "uint256",
                                                              "value": "index"
                                                            },
                                                            "id": 4927,
                                                            "name": "Identifier",
                                                            "src": "5297:5:10"
                                                          }
                                                        ],
                                                        "id": 4928,
                                                        "name": "IndexAccess",
                                                        "src": "5279:24:10"
                                                      }
                                                    ],
                                                    "id": 4929,
                                                    "name": "MemberAccess",
                                                    "src": "5279:34:10"
                                                  }
                                                ],
                                                "id": 4930,
                                                "name": "FunctionCall",
                                                "src": "5253:61:10"
                                              }
                                            ],
                                            "id": 4931,
                                            "name": "TupleExpression",
                                            "src": "5252:63:10"
                                          }
                                        ],
                                        "id": 4932,
                                        "name": "MemberAccess",
                                        "src": "5252:67:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "sender",
                                          "referencedDeclaration": null,
                                          "type": "address"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10867,
                                              "type": "msg",
                                              "value": "msg"
                                            },
                                            "id": 4933,
                                            "name": "Identifier",
                                            "src": "5320:3:10"
                                          }
                                        ],
                                        "id": 4934,
                                        "name": "MemberAccess",
                                        "src": "5320:10:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "params",
                                          "referencedDeclaration": 4562,
                                          "type": "bytes32"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct UController.GlobalConstraint memory"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4907,
                                                  "type": "struct UController.GlobalConstraint memory[] memory",
                                                  "value": "globalConstraints"
                                                },
                                                "id": 4935,
                                                "name": "Identifier",
                                                "src": "5332:17:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4902,
                                                  "type": "uint256",
                                                  "value": "index"
                                                },
                                                "id": 4936,
                                                "name": "Identifier",
                                                "src": "5350:5:10"
                                              }
                                            ],
                                            "id": 4937,
                                            "name": "IndexAccess",
                                            "src": "5332:24:10"
                                          }
                                        ],
                                        "id": 4938,
                                        "name": "MemberAccess",
                                        "src": "5332:31:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4897,
                                          "type": "bytes32",
                                          "value": "func"
                                        },
                                        "id": 4939,
                                        "name": "Identifier",
                                        "src": "5365:4:10"
                                      }
                                    ],
                                    "id": 4940,
                                    "name": "FunctionCall",
                                    "src": "5252:118:10"
                                  }
                                ],
                                "id": 4941,
                                "name": "FunctionCall",
                                "src": "5244:127:10"
                              }
                            ],
                            "id": 4942,
                            "name": "ExpressionStatement",
                            "src": "5244:127:10"
                          }
                        ],
                        "id": 4943,
                        "name": "Block",
                        "src": "5230:152:10"
                      }
                    ],
                    "id": 4944,
                    "name": "ForStatement",
                    "src": "5175:207:10"
                  },
                  {
                    "id": 4945,
                    "name": "PlaceholderStatement",
                    "src": "5391:1:10"
                  },
                  {
                    "children": [
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4902,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 4946,
                                "name": "Identifier",
                                "src": "5407:5:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 4947,
                                "name": "Literal",
                                "src": "5415:1:10"
                              }
                            ],
                            "id": 4948,
                            "name": "Assignment",
                            "src": "5407:9:10"
                          }
                        ],
                        "id": 4949,
                        "name": "ExpressionStatement",
                        "src": "5407:9:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4902,
                              "type": "uint256",
                              "value": "index"
                            },
                            "id": 4950,
                            "name": "Identifier",
                            "src": "5417:5:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4907,
                                  "type": "struct UController.GlobalConstraint memory[] memory",
                                  "value": "globalConstraints"
                                },
                                "id": 4951,
                                "name": "Identifier",
                                "src": "5423:17:10"
                              }
                            ],
                            "id": 4952,
                            "name": "MemberAccess",
                            "src": "5423:24:10"
                          }
                        ],
                        "id": 4953,
                        "name": "BinaryOperation",
                        "src": "5417:30:10"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4902,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 4954,
                                "name": "Identifier",
                                "src": "5448:5:10"
                              }
                            ],
                            "id": 4955,
                            "name": "UnaryOperation",
                            "src": "5448:7:10"
                          }
                        ],
                        "id": 4956,
                        "name": "ExpressionStatement",
                        "src": "5448:7:10"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10870,
                                      "type": "function (bool) pure",
                                      "value": "require"
                                    },
                                    "id": 4957,
                                    "name": "Identifier",
                                    "src": "5471:7:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bool",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "post",
                                          "referencedDeclaration": 5889,
                                          "type": "function (address,bytes32,bytes32) external returns (bool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "contract GlobalConstraintInterface"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "isStructConstructorCall": false,
                                                  "lValueRequested": false,
                                                  "names": [
                                                    null
                                                  ],
                                                  "type": "contract GlobalConstraintInterface",
                                                  "type_conversion": true
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": [
                                                        {
                                                          "typeIdentifier": "t_address",
                                                          "typeString": "address"
                                                        }
                                                      ],
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5890,
                                                      "type": "type(contract GlobalConstraintInterface)",
                                                      "value": "GlobalConstraintInterface"
                                                    },
                                                    "id": 4958,
                                                    "name": "Identifier",
                                                    "src": "5480:25:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "gcAddress",
                                                      "referencedDeclaration": 4560,
                                                      "type": "address"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "isConstant": false,
                                                          "isLValue": true,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "type": "struct UController.GlobalConstraint memory"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 4907,
                                                              "type": "struct UController.GlobalConstraint memory[] memory",
                                                              "value": "globalConstraints"
                                                            },
                                                            "id": 4959,
                                                            "name": "Identifier",
                                                            "src": "5506:17:10"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 4902,
                                                              "type": "uint256",
                                                              "value": "index"
                                                            },
                                                            "id": 4960,
                                                            "name": "Identifier",
                                                            "src": "5524:5:10"
                                                          }
                                                        ],
                                                        "id": 4961,
                                                        "name": "IndexAccess",
                                                        "src": "5506:24:10"
                                                      }
                                                    ],
                                                    "id": 4962,
                                                    "name": "MemberAccess",
                                                    "src": "5506:34:10"
                                                  }
                                                ],
                                                "id": 4963,
                                                "name": "FunctionCall",
                                                "src": "5480:61:10"
                                              }
                                            ],
                                            "id": 4964,
                                            "name": "TupleExpression",
                                            "src": "5479:63:10"
                                          }
                                        ],
                                        "id": 4965,
                                        "name": "MemberAccess",
                                        "src": "5479:68:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "sender",
                                          "referencedDeclaration": null,
                                          "type": "address"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10867,
                                              "type": "msg",
                                              "value": "msg"
                                            },
                                            "id": 4966,
                                            "name": "Identifier",
                                            "src": "5548:3:10"
                                          }
                                        ],
                                        "id": 4967,
                                        "name": "MemberAccess",
                                        "src": "5548:10:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "params",
                                          "referencedDeclaration": 4562,
                                          "type": "bytes32"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct UController.GlobalConstraint memory"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4907,
                                                  "type": "struct UController.GlobalConstraint memory[] memory",
                                                  "value": "globalConstraints"
                                                },
                                                "id": 4968,
                                                "name": "Identifier",
                                                "src": "5560:17:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4902,
                                                  "type": "uint256",
                                                  "value": "index"
                                                },
                                                "id": 4969,
                                                "name": "Identifier",
                                                "src": "5578:5:10"
                                              }
                                            ],
                                            "id": 4970,
                                            "name": "IndexAccess",
                                            "src": "5560:24:10"
                                          }
                                        ],
                                        "id": 4971,
                                        "name": "MemberAccess",
                                        "src": "5560:31:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4897,
                                          "type": "bytes32",
                                          "value": "func"
                                        },
                                        "id": 4972,
                                        "name": "Identifier",
                                        "src": "5593:4:10"
                                      }
                                    ],
                                    "id": 4973,
                                    "name": "FunctionCall",
                                    "src": "5479:119:10"
                                  }
                                ],
                                "id": 4974,
                                "name": "FunctionCall",
                                "src": "5471:128:10"
                              }
                            ],
                            "id": 4975,
                            "name": "ExpressionStatement",
                            "src": "5471:128:10"
                          }
                        ],
                        "id": 4976,
                        "name": "Block",
                        "src": "5457:153:10"
                      }
                    ],
                    "id": 4977,
                    "name": "ForStatement",
                    "src": "5402:208:10"
                  }
                ],
                "id": 4978,
                "name": "Block",
                "src": "5049:567:10"
              }
            ],
            "id": 4979,
            "name": "ModifierDefinition",
            "src": "4986:630:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "mintReputation",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": 4176,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amount",
                      "scope": 5015,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 4980,
                        "name": "ElementaryTypeName",
                        "src": "5885:6:10"
                      }
                    ],
                    "id": 4981,
                    "name": "VariableDeclaration",
                    "src": "5885:14:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_beneficiary",
                      "scope": 5015,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4982,
                        "name": "ElementaryTypeName",
                        "src": "5901:7:10"
                      }
                    ],
                    "id": 4983,
                    "name": "VariableDeclaration",
                    "src": "5901:20:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5015,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4984,
                        "name": "ElementaryTypeName",
                        "src": "5922:7:10"
                      }
                    ],
                    "id": 4985,
                    "name": "VariableDeclaration",
                    "src": "5922:15:10"
                  }
                ],
                "id": 4986,
                "name": "ParameterList",
                "src": "5884:54:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5015,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 4994,
                        "name": "ElementaryTypeName",
                        "src": "6050:4:10"
                      }
                    ],
                    "id": 4995,
                    "name": "VariableDeclaration",
                    "src": "6050:4:10"
                  }
                ],
                "id": 4996,
                "name": "ParameterList",
                "src": "6049:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4820,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 4987,
                    "name": "Identifier",
                    "src": "5954:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4985,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 4988,
                    "name": "Identifier",
                    "src": "5975:7:10"
                  }
                ],
                "id": 4989,
                "name": "ModifierInvocation",
                "src": "5954:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4979,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 4990,
                    "name": "Identifier",
                    "src": "5988:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "6d696e7452657075746174696f6e",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"mintReputation\"",
                      "value": "mintReputation"
                    },
                    "id": 4991,
                    "name": "Literal",
                    "src": "6012:16:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4985,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 4992,
                    "name": "Identifier",
                    "src": "6029:7:10"
                  }
                ],
                "id": 4993,
                "name": "ModifierInvocation",
                "src": "5988:49:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4604,
                              "type": "function (address,address,int256,address)",
                              "value": "MintReputation"
                            },
                            "id": 4997,
                            "name": "Identifier",
                            "src": "6070:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 4998,
                                "name": "Identifier",
                                "src": "6085:3:10"
                              }
                            ],
                            "id": 4999,
                            "name": "MemberAccess",
                            "src": "6085:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4983,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 5000,
                            "name": "Identifier",
                            "src": "6097:12:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4981,
                              "type": "int256",
                              "value": "_amount"
                            },
                            "id": 5001,
                            "name": "Identifier",
                            "src": "6111:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4985,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5002,
                            "name": "Identifier",
                            "src": "6119:7:10"
                          }
                        ],
                        "id": 5003,
                        "name": "FunctionCall",
                        "src": "6070:57:10"
                      }
                    ],
                    "id": 5004,
                    "name": "ExpressionStatement",
                    "src": "6070:57:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 4996
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "mint",
                              "referencedDeclaration": 4543,
                              "type": "function (address,int256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "nativeReputation",
                                  "referencedDeclaration": 4572,
                                  "type": "contract Reputation"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4590,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5005,
                                        "name": "Identifier",
                                        "src": "6144:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4985,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5006,
                                        "name": "Identifier",
                                        "src": "6158:7:10"
                                      }
                                    ],
                                    "id": 5007,
                                    "name": "IndexAccess",
                                    "src": "6144:22:10"
                                  }
                                ],
                                "id": 5008,
                                "name": "MemberAccess",
                                "src": "6144:39:10"
                              }
                            ],
                            "id": 5009,
                            "name": "MemberAccess",
                            "src": "6144:44:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4983,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 5010,
                            "name": "Identifier",
                            "src": "6189:12:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4981,
                              "type": "int256",
                              "value": "_amount"
                            },
                            "id": 5011,
                            "name": "Identifier",
                            "src": "6203:7:10"
                          }
                        ],
                        "id": 5012,
                        "name": "FunctionCall",
                        "src": "6144:67:10"
                      }
                    ],
                    "id": 5013,
                    "name": "Return",
                    "src": "6137:74:10"
                  }
                ],
                "id": 5014,
                "name": "Block",
                "src": "6060:158:10"
              }
            ],
            "id": 5015,
            "name": "FunctionDefinition",
            "src": "5861:357:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "mintTokens",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": 4187,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amount",
                      "scope": 5051,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 5016,
                        "name": "ElementaryTypeName",
                        "src": "6474:7:10"
                      }
                    ],
                    "id": 5017,
                    "name": "VariableDeclaration",
                    "src": "6474:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_beneficiary",
                      "scope": 5051,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5018,
                        "name": "ElementaryTypeName",
                        "src": "6491:7:10"
                      }
                    ],
                    "id": 5019,
                    "name": "VariableDeclaration",
                    "src": "6491:20:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5051,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5020,
                        "name": "ElementaryTypeName",
                        "src": "6512:7:10"
                      }
                    ],
                    "id": 5021,
                    "name": "VariableDeclaration",
                    "src": "6512:15:10"
                  }
                ],
                "id": 5022,
                "name": "ParameterList",
                "src": "6473:55:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5051,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5030,
                        "name": "ElementaryTypeName",
                        "src": "6636:4:10"
                      }
                    ],
                    "id": 5031,
                    "name": "VariableDeclaration",
                    "src": "6636:4:10"
                  }
                ],
                "id": 5032,
                "name": "ParameterList",
                "src": "6635:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4820,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5023,
                    "name": "Identifier",
                    "src": "6544:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5021,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5024,
                    "name": "Identifier",
                    "src": "6565:7:10"
                  }
                ],
                "id": 5025,
                "name": "ModifierInvocation",
                "src": "6544:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4979,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5026,
                    "name": "Identifier",
                    "src": "6578:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "6d696e74546f6b656e73",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"mintTokens\"",
                      "value": "mintTokens"
                    },
                    "id": 5027,
                    "name": "Literal",
                    "src": "6602:12:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5021,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5028,
                    "name": "Identifier",
                    "src": "6615:7:10"
                  }
                ],
                "id": 5029,
                "name": "ModifierInvocation",
                "src": "6578:45:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4614,
                              "type": "function (address,address,uint256,address)",
                              "value": "MintTokens"
                            },
                            "id": 5033,
                            "name": "Identifier",
                            "src": "6656:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5034,
                                "name": "Identifier",
                                "src": "6667:3:10"
                              }
                            ],
                            "id": 5035,
                            "name": "MemberAccess",
                            "src": "6667:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5019,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 5036,
                            "name": "Identifier",
                            "src": "6679:12:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5017,
                              "type": "uint256",
                              "value": "_amount"
                            },
                            "id": 5037,
                            "name": "Identifier",
                            "src": "6693:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5021,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5038,
                            "name": "Identifier",
                            "src": "6701:7:10"
                          }
                        ],
                        "id": 5039,
                        "name": "FunctionCall",
                        "src": "6656:53:10"
                      }
                    ],
                    "id": 5040,
                    "name": "ExpressionStatement",
                    "src": "6656:53:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5032
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "mint",
                              "referencedDeclaration": 10589,
                              "type": "function (address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "nativeToken",
                                  "referencedDeclaration": 4570,
                                  "type": "contract DAOToken"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4590,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5041,
                                        "name": "Identifier",
                                        "src": "6726:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5021,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5042,
                                        "name": "Identifier",
                                        "src": "6740:7:10"
                                      }
                                    ],
                                    "id": 5043,
                                    "name": "IndexAccess",
                                    "src": "6726:22:10"
                                  }
                                ],
                                "id": 5044,
                                "name": "MemberAccess",
                                "src": "6726:34:10"
                              }
                            ],
                            "id": 5045,
                            "name": "MemberAccess",
                            "src": "6726:39:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5019,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 5046,
                            "name": "Identifier",
                            "src": "6766:12:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5017,
                              "type": "uint256",
                              "value": "_amount"
                            },
                            "id": 5047,
                            "name": "Identifier",
                            "src": "6780:7:10"
                          }
                        ],
                        "id": 5048,
                        "name": "FunctionCall",
                        "src": "6726:62:10"
                      }
                    ],
                    "id": 5049,
                    "name": "Return",
                    "src": "6719:69:10"
                  }
                ],
                "id": 5050,
                "name": "Block",
                "src": "6646:149:10"
              }
            ],
            "id": 5051,
            "name": "FunctionDefinition",
            "src": "6454:341:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "registerScheme",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": 4200,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 5154,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5052,
                        "name": "ElementaryTypeName",
                        "src": "7151:7:10"
                      }
                    ],
                    "id": 5053,
                    "name": "VariableDeclaration",
                    "src": "7151:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_paramsHash",
                      "scope": 5154,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 5054,
                        "name": "ElementaryTypeName",
                        "src": "7168:7:10"
                      }
                    ],
                    "id": 5055,
                    "name": "VariableDeclaration",
                    "src": "7168:19:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_permissions",
                      "scope": 5154,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes4",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes4",
                          "type": "bytes4"
                        },
                        "id": 5056,
                        "name": "ElementaryTypeName",
                        "src": "7189:6:10"
                      }
                    ],
                    "id": 5057,
                    "name": "VariableDeclaration",
                    "src": "7189:19:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5154,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5058,
                        "name": "ElementaryTypeName",
                        "src": "7209:7:10"
                      }
                    ],
                    "id": 5059,
                    "name": "VariableDeclaration",
                    "src": "7209:15:10"
                  }
                ],
                "id": 5060,
                "name": "ParameterList",
                "src": "7150:75:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5154,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5068,
                        "name": "ElementaryTypeName",
                        "src": "7339:4:10"
                      }
                    ],
                    "id": 5069,
                    "name": "VariableDeclaration",
                    "src": "7339:4:10"
                  }
                ],
                "id": 5070,
                "name": "ParameterList",
                "src": "7338:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4845,
                      "type": "modifier (address)",
                      "value": "onlyRegisteringSchemes"
                    },
                    "id": 5061,
                    "name": "Identifier",
                    "src": "7241:22:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5059,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5062,
                    "name": "Identifier",
                    "src": "7264:7:10"
                  }
                ],
                "id": 5063,
                "name": "ModifierInvocation",
                "src": "7241:31:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4979,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5064,
                    "name": "Identifier",
                    "src": "7277:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "7265676973746572536368656d65",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"registerScheme\"",
                      "value": "registerScheme"
                    },
                    "id": 5065,
                    "name": "Literal",
                    "src": "7301:16:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5059,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5066,
                    "name": "Identifier",
                    "src": "7318:7:10"
                  }
                ],
                "id": 5067,
                "name": "ModifierInvocation",
                "src": "7277:49:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        5072
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "schemePermission",
                          "scope": 5154,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes4",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes4",
                              "type": "bytes4"
                            },
                            "id": 5071,
                            "name": "ElementaryTypeName",
                            "src": "7359:6:10"
                          }
                        ],
                        "id": 5072,
                        "name": "VariableDeclaration",
                        "src": "7359:23:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "permissions",
                          "referencedDeclaration": 4557,
                          "type": "bytes4"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4576,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4590,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5073,
                                        "name": "Identifier",
                                        "src": "7385:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5059,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5074,
                                        "name": "Identifier",
                                        "src": "7399:7:10"
                                      }
                                    ],
                                    "id": 5075,
                                    "name": "IndexAccess",
                                    "src": "7385:22:10"
                                  }
                                ],
                                "id": 5076,
                                "name": "MemberAccess",
                                "src": "7385:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5053,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5077,
                                "name": "Identifier",
                                "src": "7416:7:10"
                              }
                            ],
                            "id": 5078,
                            "name": "IndexAccess",
                            "src": "7385:39:10"
                          }
                        ],
                        "id": 5079,
                        "name": "MemberAccess",
                        "src": "7385:51:10"
                      }
                    ],
                    "id": 5080,
                    "name": "VariableDeclarationStatement",
                    "src": "7359:77:10"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        5082
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "senderPermission",
                          "scope": 5154,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes4",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes4",
                              "type": "bytes4"
                            },
                            "id": 5081,
                            "name": "ElementaryTypeName",
                            "src": "7446:6:10"
                          }
                        ],
                        "id": 5082,
                        "name": "VariableDeclaration",
                        "src": "7446:23:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "permissions",
                          "referencedDeclaration": 4557,
                          "type": "bytes4"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4576,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4590,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5083,
                                        "name": "Identifier",
                                        "src": "7472:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5059,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5084,
                                        "name": "Identifier",
                                        "src": "7486:7:10"
                                      }
                                    ],
                                    "id": 5085,
                                    "name": "IndexAccess",
                                    "src": "7472:22:10"
                                  }
                                ],
                                "id": 5086,
                                "name": "MemberAccess",
                                "src": "7472:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 5087,
                                    "name": "Identifier",
                                    "src": "7503:3:10"
                                  }
                                ],
                                "id": 5088,
                                "name": "MemberAccess",
                                "src": "7503:10:10"
                              }
                            ],
                            "id": 5089,
                            "name": "IndexAccess",
                            "src": "7472:42:10"
                          }
                        ],
                        "id": 5090,
                        "name": "MemberAccess",
                        "src": "7472:54:10"
                      }
                    ],
                    "id": 5091,
                    "name": "VariableDeclarationStatement",
                    "src": "7446:80:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5092,
                            "name": "Identifier",
                            "src": "7816:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes4",
                                        "typeString": "bytes4"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "&",
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "bytes4",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_rational_15_by_1",
                                                  "typeString": "int_const 15"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(bytes4)",
                                              "value": "bytes4"
                                            },
                                            "id": 5093,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "7824:6:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "hexvalue": "3135",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "subdenomination": null,
                                              "token": "number",
                                              "type": "int_const 15",
                                              "value": "15"
                                            },
                                            "id": 5094,
                                            "name": "Literal",
                                            "src": "7831:2:10"
                                          }
                                        ],
                                        "id": 5095,
                                        "name": "FunctionCall",
                                        "src": "7824:10:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isInlineArray": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "bytes4"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "commonType": {
                                                "typeIdentifier": "t_bytes4",
                                                "typeString": "bytes4"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "^",
                                              "type": "bytes4"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5057,
                                                  "type": "bytes4",
                                                  "value": "_permissions"
                                                },
                                                "id": 5096,
                                                "name": "Identifier",
                                                "src": "7836:12:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5072,
                                                  "type": "bytes4",
                                                  "value": "schemePermission"
                                                },
                                                "id": 5097,
                                                "name": "Identifier",
                                                "src": "7849:16:10"
                                              }
                                            ],
                                            "id": 5098,
                                            "name": "BinaryOperation",
                                            "src": "7836:29:10"
                                          }
                                        ],
                                        "id": 5099,
                                        "name": "TupleExpression",
                                        "src": "7835:31:10"
                                      }
                                    ],
                                    "id": 5100,
                                    "name": "BinaryOperation",
                                    "src": "7824:42:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "~",
                                          "prefix": true,
                                          "type": "bytes4"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5082,
                                              "type": "bytes4",
                                              "value": "senderPermission"
                                            },
                                            "id": 5101,
                                            "name": "Identifier",
                                            "src": "7869:16:10"
                                          }
                                        ],
                                        "id": 5102,
                                        "name": "UnaryOperation",
                                        "src": "7868:17:10"
                                      }
                                    ],
                                    "id": 5103,
                                    "name": "TupleExpression",
                                    "src": "7867:19:10"
                                  }
                                ],
                                "id": 5104,
                                "name": "BinaryOperation",
                                "src": "7824:62:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 5105,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "7890:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5106,
                                    "name": "Literal",
                                    "src": "7897:1:10"
                                  }
                                ],
                                "id": 5107,
                                "name": "FunctionCall",
                                "src": "7890:9:10"
                              }
                            ],
                            "id": 5108,
                            "name": "BinaryOperation",
                            "src": "7824:75:10"
                          }
                        ],
                        "id": 5109,
                        "name": "FunctionCall",
                        "src": "7816:84:10"
                      }
                    ],
                    "id": 5110,
                    "name": "ExpressionStatement",
                    "src": "7816:84:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5111,
                            "name": "Identifier",
                            "src": "7995:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_15_by_1",
                                              "typeString": "int_const 15"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 5112,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "8003:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "3135",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 15",
                                          "value": "15"
                                        },
                                        "id": 5113,
                                        "name": "Literal",
                                        "src": "8010:2:10"
                                      }
                                    ],
                                    "id": 5114,
                                    "name": "FunctionCall",
                                    "src": "8003:10:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes4",
                                            "typeString": "bytes4"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "&",
                                          "type": "bytes4"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5072,
                                              "type": "bytes4",
                                              "value": "schemePermission"
                                            },
                                            "id": 5115,
                                            "name": "Identifier",
                                            "src": "8015:16:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "bytes4"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "~",
                                                  "prefix": true,
                                                  "type": "bytes4"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5082,
                                                      "type": "bytes4",
                                                      "value": "senderPermission"
                                                    },
                                                    "id": 5116,
                                                    "name": "Identifier",
                                                    "src": "8034:16:10"
                                                  }
                                                ],
                                                "id": 5117,
                                                "name": "UnaryOperation",
                                                "src": "8033:17:10"
                                              }
                                            ],
                                            "id": 5118,
                                            "name": "TupleExpression",
                                            "src": "8032:19:10"
                                          }
                                        ],
                                        "id": 5119,
                                        "name": "BinaryOperation",
                                        "src": "8015:36:10"
                                      }
                                    ],
                                    "id": 5120,
                                    "name": "TupleExpression",
                                    "src": "8014:38:10"
                                  }
                                ],
                                "id": 5121,
                                "name": "BinaryOperation",
                                "src": "8003:49:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 5122,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "8056:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5123,
                                    "name": "Literal",
                                    "src": "8063:1:10"
                                  }
                                ],
                                "id": 5124,
                                "name": "FunctionCall",
                                "src": "8056:9:10"
                              }
                            ],
                            "id": 5125,
                            "name": "BinaryOperation",
                            "src": "8003:62:10"
                          }
                        ],
                        "id": 5126,
                        "name": "FunctionCall",
                        "src": "7995:71:10"
                      }
                    ],
                    "id": 5127,
                    "name": "ExpressionStatement",
                    "src": "7995:71:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct UController.Scheme storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4576,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4590,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5128,
                                        "name": "Identifier",
                                        "src": "8110:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5059,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5129,
                                        "name": "Identifier",
                                        "src": "8124:7:10"
                                      }
                                    ],
                                    "id": 5130,
                                    "name": "IndexAccess",
                                    "src": "8110:22:10"
                                  }
                                ],
                                "id": 5131,
                                "name": "MemberAccess",
                                "src": "8110:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5053,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5132,
                                "name": "Identifier",
                                "src": "8141:7:10"
                              }
                            ],
                            "id": 5133,
                            "name": "IndexAccess",
                            "src": "8110:39:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": true,
                              "lValueRequested": false,
                              "names": [
                                "paramsHash",
                                "permissions"
                              ],
                              "type": "struct UController.Scheme memory",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4558,
                                  "type": "type(struct UController.Scheme storage pointer)",
                                  "value": "Scheme"
                                },
                                "id": 5134,
                                "name": "Identifier",
                                "src": "8152:6:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5055,
                                  "type": "bytes32",
                                  "value": "_paramsHash"
                                },
                                "id": 5135,
                                "name": "Identifier",
                                "src": "8171:11:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "|",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5057,
                                      "type": "bytes4",
                                      "value": "_permissions"
                                    },
                                    "id": 5136,
                                    "name": "Identifier",
                                    "src": "8195:12:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 5137,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "8208:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 5138,
                                        "name": "Literal",
                                        "src": "8215:1:10"
                                      }
                                    ],
                                    "id": 5139,
                                    "name": "FunctionCall",
                                    "src": "8208:9:10"
                                  }
                                ],
                                "id": 5140,
                                "name": "BinaryOperation",
                                "src": "8195:22:10"
                              }
                            ],
                            "id": 5141,
                            "name": "FunctionCall",
                            "src": "8152:67:10"
                          }
                        ],
                        "id": 5142,
                        "name": "Assignment",
                        "src": "8110:109:10"
                      }
                    ],
                    "id": 5143,
                    "name": "ExpressionStatement",
                    "src": "8110:109:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4622,
                              "type": "function (address,address,address)",
                              "value": "RegisterScheme"
                            },
                            "id": 5144,
                            "name": "Identifier",
                            "src": "8229:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5145,
                                "name": "Identifier",
                                "src": "8244:3:10"
                              }
                            ],
                            "id": 5146,
                            "name": "MemberAccess",
                            "src": "8244:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5053,
                              "type": "address",
                              "value": "_scheme"
                            },
                            "id": 5147,
                            "name": "Identifier",
                            "src": "8256:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5059,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5148,
                            "name": "Identifier",
                            "src": "8265:7:10"
                          }
                        ],
                        "id": 5149,
                        "name": "FunctionCall",
                        "src": "8229:44:10"
                      }
                    ],
                    "id": 5150,
                    "name": "ExpressionStatement",
                    "src": "8229:44:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5070
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 5151,
                        "name": "Literal",
                        "src": "8290:4:10"
                      }
                    ],
                    "id": 5152,
                    "name": "Return",
                    "src": "8283:11:10"
                  }
                ],
                "id": 5153,
                "name": "Block",
                "src": "7349:952:10"
              }
            ],
            "id": 5154,
            "name": "FunctionDefinition",
            "src": "7127:1174:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "unregisterScheme",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": 4209,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 5235,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5155,
                        "name": "ElementaryTypeName",
                        "src": "8523:7:10"
                      }
                    ],
                    "id": 5156,
                    "name": "VariableDeclaration",
                    "src": "8523:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5235,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5157,
                        "name": "ElementaryTypeName",
                        "src": "8539:7:10"
                      }
                    ],
                    "id": 5158,
                    "name": "VariableDeclaration",
                    "src": "8539:15:10"
                  }
                ],
                "id": 5159,
                "name": "ParameterList",
                "src": "8522:33:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5235,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5167,
                        "name": "ElementaryTypeName",
                        "src": "8671:4:10"
                      }
                    ],
                    "id": 5168,
                    "name": "VariableDeclaration",
                    "src": "8671:4:10"
                  }
                ],
                "id": 5169,
                "name": "ParameterList",
                "src": "8670:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4845,
                      "type": "modifier (address)",
                      "value": "onlyRegisteringSchemes"
                    },
                    "id": 5160,
                    "name": "Identifier",
                    "src": "8571:22:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5158,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5161,
                    "name": "Identifier",
                    "src": "8594:7:10"
                  }
                ],
                "id": 5162,
                "name": "ModifierInvocation",
                "src": "8571:31:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4979,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5163,
                    "name": "Identifier",
                    "src": "8607:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "756e7265676973746572536368656d65",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"unregisterScheme\"",
                      "value": "unregisterScheme"
                    },
                    "id": 5164,
                    "name": "Literal",
                    "src": "8631:18:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5158,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5165,
                    "name": "Identifier",
                    "src": "8650:7:10"
                  }
                ],
                "id": 5166,
                "name": "ModifierInvocation",
                "src": "8607:51:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        5171
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "schemePermission",
                          "scope": 5235,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes4",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes4",
                              "type": "bytes4"
                            },
                            "id": 5170,
                            "name": "ElementaryTypeName",
                            "src": "8691:6:10"
                          }
                        ],
                        "id": 5171,
                        "name": "VariableDeclaration",
                        "src": "8691:23:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "permissions",
                          "referencedDeclaration": 4557,
                          "type": "bytes4"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4576,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4590,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5172,
                                        "name": "Identifier",
                                        "src": "8717:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5158,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5173,
                                        "name": "Identifier",
                                        "src": "8731:7:10"
                                      }
                                    ],
                                    "id": 5174,
                                    "name": "IndexAccess",
                                    "src": "8717:22:10"
                                  }
                                ],
                                "id": 5175,
                                "name": "MemberAccess",
                                "src": "8717:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5156,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5176,
                                "name": "Identifier",
                                "src": "8748:7:10"
                              }
                            ],
                            "id": 5177,
                            "name": "IndexAccess",
                            "src": "8717:39:10"
                          }
                        ],
                        "id": 5178,
                        "name": "MemberAccess",
                        "src": "8717:51:10"
                      }
                    ],
                    "id": 5179,
                    "name": "VariableDeclarationStatement",
                    "src": "8691:77:10"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "bytes4"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5171,
                                  "type": "bytes4",
                                  "value": "schemePermission"
                                },
                                "id": 5180,
                                "name": "Identifier",
                                "src": "8820:16:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 5181,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "8837:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "31",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "1"
                                    },
                                    "id": 5182,
                                    "name": "Literal",
                                    "src": "8844:1:10"
                                  }
                                ],
                                "id": 5183,
                                "name": "FunctionCall",
                                "src": "8837:9:10"
                              }
                            ],
                            "id": 5184,
                            "name": "BinaryOperation",
                            "src": "8820:26:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes4",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(bytes4)",
                                  "value": "bytes4"
                                },
                                "id": 5185,
                                "name": "ElementaryTypeNameExpression",
                                "src": "8850:6:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 5186,
                                "name": "Literal",
                                "src": "8857:1:10"
                              }
                            ],
                            "id": 5187,
                            "name": "FunctionCall",
                            "src": "8850:9:10"
                          }
                        ],
                        "id": 5188,
                        "name": "BinaryOperation",
                        "src": "8820:39:10"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 5169
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 5189,
                                "name": "Literal",
                                "src": "8882:5:10"
                              }
                            ],
                            "id": 5190,
                            "name": "Return",
                            "src": "8875:12:10"
                          }
                        ],
                        "id": 5191,
                        "name": "Block",
                        "src": "8861:39:10"
                      }
                    ],
                    "id": 5192,
                    "name": "IfStatement",
                    "src": "8816:84:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5193,
                            "name": "Identifier",
                            "src": "8971:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_15_by_1",
                                              "typeString": "int_const 15"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 5194,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "8979:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "3135",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 15",
                                          "value": "15"
                                        },
                                        "id": 5195,
                                        "name": "Literal",
                                        "src": "8986:2:10"
                                      }
                                    ],
                                    "id": 5196,
                                    "name": "FunctionCall",
                                    "src": "8979:10:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes4",
                                            "typeString": "bytes4"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "&",
                                          "type": "bytes4"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5171,
                                              "type": "bytes4",
                                              "value": "schemePermission"
                                            },
                                            "id": 5197,
                                            "name": "Identifier",
                                            "src": "8991:16:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "bytes4"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "~",
                                                  "prefix": true,
                                                  "type": "bytes4"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "permissions",
                                                      "referencedDeclaration": 4557,
                                                      "type": "bytes4"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "isConstant": false,
                                                          "isLValue": true,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "type": "struct UController.Scheme storage ref"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "isConstant": false,
                                                              "isLValue": true,
                                                              "isPure": false,
                                                              "lValueRequested": false,
                                                              "member_name": "schemes",
                                                              "referencedDeclaration": 4576,
                                                              "type": "mapping(address => struct UController.Scheme storage ref)"
                                                            },
                                                            "children": [
                                                              {
                                                                "attributes": {
                                                                  "argumentTypes": null,
                                                                  "isConstant": false,
                                                                  "isLValue": true,
                                                                  "isPure": false,
                                                                  "lValueRequested": false,
                                                                  "type": "struct UController.Organization storage ref"
                                                                },
                                                                "children": [
                                                                  {
                                                                    "attributes": {
                                                                      "argumentTypes": null,
                                                                      "overloadedDeclarations": [
                                                                        null
                                                                      ],
                                                                      "referencedDeclaration": 4590,
                                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                                      "value": "organizations"
                                                                    },
                                                                    "id": 5198,
                                                                    "name": "Identifier",
                                                                    "src": "9010:13:10"
                                                                  },
                                                                  {
                                                                    "attributes": {
                                                                      "argumentTypes": null,
                                                                      "overloadedDeclarations": [
                                                                        null
                                                                      ],
                                                                      "referencedDeclaration": 5158,
                                                                      "type": "address",
                                                                      "value": "_avatar"
                                                                    },
                                                                    "id": 5199,
                                                                    "name": "Identifier",
                                                                    "src": "9024:7:10"
                                                                  }
                                                                ],
                                                                "id": 5200,
                                                                "name": "IndexAccess",
                                                                "src": "9010:22:10"
                                                              }
                                                            ],
                                                            "id": 5201,
                                                            "name": "MemberAccess",
                                                            "src": "9010:30:10"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": false,
                                                              "lValueRequested": false,
                                                              "member_name": "sender",
                                                              "referencedDeclaration": null,
                                                              "type": "address"
                                                            },
                                                            "children": [
                                                              {
                                                                "attributes": {
                                                                  "argumentTypes": null,
                                                                  "overloadedDeclarations": [
                                                                    null
                                                                  ],
                                                                  "referencedDeclaration": 10867,
                                                                  "type": "msg",
                                                                  "value": "msg"
                                                                },
                                                                "id": 5202,
                                                                "name": "Identifier",
                                                                "src": "9041:3:10"
                                                              }
                                                            ],
                                                            "id": 5203,
                                                            "name": "MemberAccess",
                                                            "src": "9041:10:10"
                                                          }
                                                        ],
                                                        "id": 5204,
                                                        "name": "IndexAccess",
                                                        "src": "9010:42:10"
                                                      }
                                                    ],
                                                    "id": 5205,
                                                    "name": "MemberAccess",
                                                    "src": "9010:54:10"
                                                  }
                                                ],
                                                "id": 5206,
                                                "name": "UnaryOperation",
                                                "src": "9009:55:10"
                                              }
                                            ],
                                            "id": 5207,
                                            "name": "TupleExpression",
                                            "src": "9008:57:10"
                                          }
                                        ],
                                        "id": 5208,
                                        "name": "BinaryOperation",
                                        "src": "8991:74:10"
                                      }
                                    ],
                                    "id": 5209,
                                    "name": "TupleExpression",
                                    "src": "8990:76:10"
                                  }
                                ],
                                "id": 5210,
                                "name": "BinaryOperation",
                                "src": "8979:87:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 5211,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "9070:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5212,
                                    "name": "Literal",
                                    "src": "9077:1:10"
                                  }
                                ],
                                "id": 5213,
                                "name": "FunctionCall",
                                "src": "9070:9:10"
                              }
                            ],
                            "id": 5214,
                            "name": "BinaryOperation",
                            "src": "8979:100:10"
                          }
                        ],
                        "id": 5215,
                        "name": "FunctionCall",
                        "src": "8971:109:10"
                      }
                    ],
                    "id": 5216,
                    "name": "ExpressionStatement",
                    "src": "8971:109:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4630,
                              "type": "function (address,address,address)",
                              "value": "UnregisterScheme"
                            },
                            "id": 5217,
                            "name": "Identifier",
                            "src": "9110:16:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5218,
                                "name": "Identifier",
                                "src": "9127:3:10"
                              }
                            ],
                            "id": 5219,
                            "name": "MemberAccess",
                            "src": "9127:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5156,
                              "type": "address",
                              "value": "_scheme"
                            },
                            "id": 5220,
                            "name": "Identifier",
                            "src": "9139:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5158,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5221,
                            "name": "Identifier",
                            "src": "9147:7:10"
                          }
                        ],
                        "id": 5222,
                        "name": "FunctionCall",
                        "src": "9110:45:10"
                      }
                    ],
                    "id": 5223,
                    "name": "ExpressionStatement",
                    "src": "9110:45:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "delete",
                          "prefix": true,
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4576,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4590,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5224,
                                        "name": "Identifier",
                                        "src": "9172:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5158,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5225,
                                        "name": "Identifier",
                                        "src": "9186:7:10"
                                      }
                                    ],
                                    "id": 5226,
                                    "name": "IndexAccess",
                                    "src": "9172:22:10"
                                  }
                                ],
                                "id": 5227,
                                "name": "MemberAccess",
                                "src": "9172:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5156,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5228,
                                "name": "Identifier",
                                "src": "9203:7:10"
                              }
                            ],
                            "id": 5229,
                            "name": "IndexAccess",
                            "src": "9172:39:10"
                          }
                        ],
                        "id": 5230,
                        "name": "UnaryOperation",
                        "src": "9165:46:10"
                      }
                    ],
                    "id": 5231,
                    "name": "ExpressionStatement",
                    "src": "9165:46:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5169
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 5232,
                        "name": "Literal",
                        "src": "9228:4:10"
                      }
                    ],
                    "id": 5233,
                    "name": "Return",
                    "src": "9221:11:10"
                  }
                ],
                "id": 5234,
                "name": "Block",
                "src": "8681:558:10"
              }
            ],
            "id": 5235,
            "name": "FunctionDefinition",
            "src": "8497:742:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "unregisterSelf",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": 4216,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5273,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5236,
                        "name": "ElementaryTypeName",
                        "src": "9422:7:10"
                      }
                    ],
                    "id": 5237,
                    "name": "VariableDeclaration",
                    "src": "9422:15:10"
                  }
                ],
                "id": 5238,
                "name": "ParameterList",
                "src": "9421:17:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5273,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5239,
                        "name": "ElementaryTypeName",
                        "src": "9454:4:10"
                      }
                    ],
                    "id": 5240,
                    "name": "VariableDeclaration",
                    "src": "9454:4:10"
                  }
                ],
                "id": 5241,
                "name": "ParameterList",
                "src": "9453:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bool",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    5300
                                  ],
                                  "referencedDeclaration": 5300,
                                  "type": "function (address,address) view returns (bool)",
                                  "value": "isSchemeRegistered"
                                },
                                "id": 5242,
                                "name": "Identifier",
                                "src": "9474:18:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 5243,
                                    "name": "Identifier",
                                    "src": "9493:3:10"
                                  }
                                ],
                                "id": 5244,
                                "name": "MemberAccess",
                                "src": "9493:10:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5237,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 5245,
                                "name": "Identifier",
                                "src": "9504:7:10"
                              }
                            ],
                            "id": 5246,
                            "name": "FunctionCall",
                            "src": "9474:38:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "66616c7365",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "false"
                            },
                            "id": 5247,
                            "name": "Literal",
                            "src": "9516:5:10"
                          }
                        ],
                        "id": 5248,
                        "name": "BinaryOperation",
                        "src": "9474:47:10"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 5241
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 5249,
                                "name": "Literal",
                                "src": "9544:5:10"
                              }
                            ],
                            "id": 5250,
                            "name": "Return",
                            "src": "9537:12:10"
                          }
                        ],
                        "id": 5251,
                        "name": "Block",
                        "src": "9523:37:10"
                      }
                    ],
                    "id": 5252,
                    "name": "IfStatement",
                    "src": "9470:90:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "delete",
                          "prefix": true,
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4576,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4590,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5253,
                                        "name": "Identifier",
                                        "src": "9576:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5237,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5254,
                                        "name": "Identifier",
                                        "src": "9590:7:10"
                                      }
                                    ],
                                    "id": 5255,
                                    "name": "IndexAccess",
                                    "src": "9576:22:10"
                                  }
                                ],
                                "id": 5256,
                                "name": "MemberAccess",
                                "src": "9576:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 5257,
                                    "name": "Identifier",
                                    "src": "9607:3:10"
                                  }
                                ],
                                "id": 5258,
                                "name": "MemberAccess",
                                "src": "9607:10:10"
                              }
                            ],
                            "id": 5259,
                            "name": "IndexAccess",
                            "src": "9576:42:10"
                          }
                        ],
                        "id": 5260,
                        "name": "UnaryOperation",
                        "src": "9569:49:10"
                      }
                    ],
                    "id": 5261,
                    "name": "ExpressionStatement",
                    "src": "9569:49:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4630,
                              "type": "function (address,address,address)",
                              "value": "UnregisterScheme"
                            },
                            "id": 5262,
                            "name": "Identifier",
                            "src": "9628:16:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5263,
                                "name": "Identifier",
                                "src": "9645:3:10"
                              }
                            ],
                            "id": 5264,
                            "name": "MemberAccess",
                            "src": "9645:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5265,
                                "name": "Identifier",
                                "src": "9657:3:10"
                              }
                            ],
                            "id": 5266,
                            "name": "MemberAccess",
                            "src": "9657:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5237,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5267,
                            "name": "Identifier",
                            "src": "9668:7:10"
                          }
                        ],
                        "id": 5268,
                        "name": "FunctionCall",
                        "src": "9628:48:10"
                      }
                    ],
                    "id": 5269,
                    "name": "ExpressionStatement",
                    "src": "9628:48:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5241
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 5270,
                        "name": "Literal",
                        "src": "9693:4:10"
                      }
                    ],
                    "id": 5271,
                    "name": "Return",
                    "src": "9686:11:10"
                  }
                ],
                "id": 5272,
                "name": "Block",
                "src": "9460:244:10"
              }
            ],
            "id": 5273,
            "name": "FunctionDefinition",
            "src": "9398:306:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "isSchemeRegistered",
              "payable": false,
              "scope": 5865,
              "stateMutability": "view",
              "superFunction": 4225,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 5300,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5274,
                        "name": "ElementaryTypeName",
                        "src": "9739:7:10"
                      }
                    ],
                    "id": 5275,
                    "name": "VariableDeclaration",
                    "src": "9739:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5300,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5276,
                        "name": "ElementaryTypeName",
                        "src": "9755:7:10"
                      }
                    ],
                    "id": 5277,
                    "name": "VariableDeclaration",
                    "src": "9755:15:10"
                  }
                ],
                "id": 5278,
                "name": "ParameterList",
                "src": "9737:34:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5300,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5279,
                        "name": "ElementaryTypeName",
                        "src": "9796:4:10"
                      }
                    ],
                    "id": 5280,
                    "name": "VariableDeclaration",
                    "src": "9796:4:10"
                  }
                ],
                "id": 5281,
                "name": "ParameterList",
                "src": "9795:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 5281
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "permissions",
                                      "referencedDeclaration": 4557,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.Scheme storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "schemes",
                                              "referencedDeclaration": 4576,
                                              "type": "mapping(address => struct UController.Scheme storage ref)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.Organization storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4590,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 5282,
                                                    "name": "Identifier",
                                                    "src": "9820:13:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5277,
                                                      "type": "address",
                                                      "value": "_avatar"
                                                    },
                                                    "id": 5283,
                                                    "name": "Identifier",
                                                    "src": "9834:7:10"
                                                  }
                                                ],
                                                "id": 5284,
                                                "name": "IndexAccess",
                                                "src": "9820:22:10"
                                              }
                                            ],
                                            "id": 5285,
                                            "name": "MemberAccess",
                                            "src": "9820:30:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5275,
                                              "type": "address",
                                              "value": "_scheme"
                                            },
                                            "id": 5286,
                                            "name": "Identifier",
                                            "src": "9851:7:10"
                                          }
                                        ],
                                        "id": 5287,
                                        "name": "IndexAccess",
                                        "src": "9820:39:10"
                                      }
                                    ],
                                    "id": 5288,
                                    "name": "MemberAccess",
                                    "src": "9820:51:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 5289,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "9872:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 5290,
                                        "name": "Literal",
                                        "src": "9879:1:10"
                                      }
                                    ],
                                    "id": 5291,
                                    "name": "FunctionCall",
                                    "src": "9872:9:10"
                                  }
                                ],
                                "id": 5292,
                                "name": "BinaryOperation",
                                "src": "9820:61:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 5293,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "9885:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5294,
                                    "name": "Literal",
                                    "src": "9892:1:10"
                                  }
                                ],
                                "id": 5295,
                                "name": "FunctionCall",
                                "src": "9885:9:10"
                              }
                            ],
                            "id": 5296,
                            "name": "BinaryOperation",
                            "src": "9820:74:10"
                          }
                        ],
                        "id": 5297,
                        "name": "TupleExpression",
                        "src": "9819:76:10"
                      }
                    ],
                    "id": 5298,
                    "name": "Return",
                    "src": "9812:83:10"
                  }
                ],
                "id": 5299,
                "name": "Block",
                "src": "9802:100:10"
              }
            ],
            "id": 5300,
            "name": "FunctionDefinition",
            "src": "9710:192:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getSchemeParameters",
              "payable": false,
              "scope": 5865,
              "stateMutability": "view",
              "superFunction": 4234,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 5318,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5301,
                        "name": "ElementaryTypeName",
                        "src": "9937:7:10"
                      }
                    ],
                    "id": 5302,
                    "name": "VariableDeclaration",
                    "src": "9937:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5318,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5303,
                        "name": "ElementaryTypeName",
                        "src": "9953:7:10"
                      }
                    ],
                    "id": 5304,
                    "name": "VariableDeclaration",
                    "src": "9953:15:10"
                  }
                ],
                "id": 5305,
                "name": "ParameterList",
                "src": "9936:33:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5318,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 5306,
                        "name": "ElementaryTypeName",
                        "src": "9994:7:10"
                      }
                    ],
                    "id": 5307,
                    "name": "VariableDeclaration",
                    "src": "9994:7:10"
                  }
                ],
                "id": 5308,
                "name": "ParameterList",
                "src": "9993:9:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 5308
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "paramsHash",
                          "referencedDeclaration": 4555,
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4576,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4590,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5309,
                                        "name": "Identifier",
                                        "src": "10020:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5304,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5310,
                                        "name": "Identifier",
                                        "src": "10034:7:10"
                                      }
                                    ],
                                    "id": 5311,
                                    "name": "IndexAccess",
                                    "src": "10020:22:10"
                                  }
                                ],
                                "id": 5312,
                                "name": "MemberAccess",
                                "src": "10020:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5302,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5313,
                                "name": "Identifier",
                                "src": "10051:7:10"
                              }
                            ],
                            "id": 5314,
                            "name": "IndexAccess",
                            "src": "10020:39:10"
                          }
                        ],
                        "id": 5315,
                        "name": "MemberAccess",
                        "src": "10020:50:10"
                      }
                    ],
                    "id": 5316,
                    "name": "Return",
                    "src": "10013:57:10"
                  }
                ],
                "id": 5317,
                "name": "Block",
                "src": "10003:74:10"
              }
            ],
            "id": 5318,
            "name": "FunctionDefinition",
            "src": "9908:169:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getSchemePermissions",
              "payable": false,
              "scope": 5865,
              "stateMutability": "view",
              "superFunction": 4243,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 5336,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5319,
                        "name": "ElementaryTypeName",
                        "src": "10113:7:10"
                      }
                    ],
                    "id": 5320,
                    "name": "VariableDeclaration",
                    "src": "10113:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5336,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5321,
                        "name": "ElementaryTypeName",
                        "src": "10129:7:10"
                      }
                    ],
                    "id": 5322,
                    "name": "VariableDeclaration",
                    "src": "10129:15:10"
                  }
                ],
                "id": 5323,
                "name": "ParameterList",
                "src": "10112:33:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5336,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes4",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes4",
                          "type": "bytes4"
                        },
                        "id": 5324,
                        "name": "ElementaryTypeName",
                        "src": "10170:6:10"
                      }
                    ],
                    "id": 5325,
                    "name": "VariableDeclaration",
                    "src": "10170:6:10"
                  }
                ],
                "id": 5326,
                "name": "ParameterList",
                "src": "10169:8:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 5326
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "permissions",
                          "referencedDeclaration": 4557,
                          "type": "bytes4"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4576,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4590,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5327,
                                        "name": "Identifier",
                                        "src": "10195:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5322,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5328,
                                        "name": "Identifier",
                                        "src": "10209:7:10"
                                      }
                                    ],
                                    "id": 5329,
                                    "name": "IndexAccess",
                                    "src": "10195:22:10"
                                  }
                                ],
                                "id": 5330,
                                "name": "MemberAccess",
                                "src": "10195:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5320,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5331,
                                "name": "Identifier",
                                "src": "10226:7:10"
                              }
                            ],
                            "id": 5332,
                            "name": "IndexAccess",
                            "src": "10195:39:10"
                          }
                        ],
                        "id": 5333,
                        "name": "MemberAccess",
                        "src": "10195:51:10"
                      }
                    ],
                    "id": 5334,
                    "name": "Return",
                    "src": "10188:58:10"
                  }
                ],
                "id": 5335,
                "name": "Block",
                "src": "10178:75:10"
              }
            ],
            "id": 5336,
            "name": "FunctionDefinition",
            "src": "10083:170:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "globalConstraintsCount",
              "payable": false,
              "scope": 5865,
              "stateMutability": "view",
              "superFunction": 4250,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5350,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5337,
                        "name": "ElementaryTypeName",
                        "src": "10316:7:10"
                      }
                    ],
                    "id": 5338,
                    "name": "VariableDeclaration",
                    "src": "10316:15:10"
                  }
                ],
                "id": 5339,
                "name": "ParameterList",
                "src": "10315:17:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5350,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5340,
                        "name": "ElementaryTypeName",
                        "src": "10357:4:10"
                      }
                    ],
                    "id": 5341,
                    "name": "VariableDeclaration",
                    "src": "10357:4:10"
                  }
                ],
                "id": 5342,
                "name": "ParameterList",
                "src": "10356:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 5342
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "length",
                          "referencedDeclaration": null,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "globalConstraints",
                              "referencedDeclaration": 4579,
                              "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UController.Organization storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4590,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 5343,
                                    "name": "Identifier",
                                    "src": "10380:13:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5338,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 5344,
                                    "name": "Identifier",
                                    "src": "10394:7:10"
                                  }
                                ],
                                "id": 5345,
                                "name": "IndexAccess",
                                "src": "10380:22:10"
                              }
                            ],
                            "id": 5346,
                            "name": "MemberAccess",
                            "src": "10380:40:10"
                          }
                        ],
                        "id": 5347,
                        "name": "MemberAccess",
                        "src": "10380:47:10"
                      }
                    ],
                    "id": 5348,
                    "name": "Return",
                    "src": "10373:54:10"
                  }
                ],
                "id": 5349,
                "name": "Block",
                "src": "10363:71:10"
              }
            ],
            "id": 5350,
            "name": "FunctionDefinition",
            "src": "10284:150:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "isGlobalConstraintRegistered",
              "payable": false,
              "scope": 5865,
              "stateMutability": "view",
              "superFunction": 4259,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_globalConstraint",
                      "scope": 5368,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5351,
                        "name": "ElementaryTypeName",
                        "src": "10478:7:10"
                      }
                    ],
                    "id": 5352,
                    "name": "VariableDeclaration",
                    "src": "10478:25:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5368,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5353,
                        "name": "ElementaryTypeName",
                        "src": "10504:7:10"
                      }
                    ],
                    "id": 5354,
                    "name": "VariableDeclaration",
                    "src": "10504:15:10"
                  }
                ],
                "id": 5355,
                "name": "ParameterList",
                "src": "10477:43:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5368,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5356,
                        "name": "ElementaryTypeName",
                        "src": "10545:4:10"
                      }
                    ],
                    "id": 5357,
                    "name": "VariableDeclaration",
                    "src": "10545:4:10"
                  }
                ],
                "id": 5358,
                "name": "ParameterList",
                "src": "10544:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 5358
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "register",
                          "referencedDeclaration": 4565,
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.GlobalConstraintRegister storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "globalConstraintsRegister",
                                  "referencedDeclaration": 4583,
                                  "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4590,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5359,
                                        "name": "Identifier",
                                        "src": "10568:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5354,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5360,
                                        "name": "Identifier",
                                        "src": "10582:7:10"
                                      }
                                    ],
                                    "id": 5361,
                                    "name": "IndexAccess",
                                    "src": "10568:22:10"
                                  }
                                ],
                                "id": 5362,
                                "name": "MemberAccess",
                                "src": "10568:48:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5352,
                                  "type": "address",
                                  "value": "_globalConstraint"
                                },
                                "id": 5363,
                                "name": "Identifier",
                                "src": "10617:17:10"
                              }
                            ],
                            "id": 5364,
                            "name": "IndexAccess",
                            "src": "10568:67:10"
                          }
                        ],
                        "id": 5365,
                        "name": "MemberAccess",
                        "src": "10568:76:10"
                      }
                    ],
                    "id": 5366,
                    "name": "Return",
                    "src": "10561:83:10"
                  }
                ],
                "id": 5367,
                "name": "Block",
                "src": "10551:100:10"
              }
            ],
            "id": 5368,
            "name": "FunctionDefinition",
            "src": "10440:211:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "addGlobalConstraint",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": 4270,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_globalConstraint",
                      "scope": 5444,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5369,
                        "name": "ElementaryTypeName",
                        "src": "10976:7:10"
                      }
                    ],
                    "id": 5370,
                    "name": "VariableDeclaration",
                    "src": "10976:25:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_params",
                      "scope": 5444,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 5371,
                        "name": "ElementaryTypeName",
                        "src": "11003:7:10"
                      }
                    ],
                    "id": 5372,
                    "name": "VariableDeclaration",
                    "src": "11003:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5444,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5373,
                        "name": "ElementaryTypeName",
                        "src": "11019:7:10"
                      }
                    ],
                    "id": 5374,
                    "name": "VariableDeclaration",
                    "src": "11019:15:10"
                  }
                ],
                "id": 5375,
                "name": "ParameterList",
                "src": "10975:60:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5444,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5379,
                        "name": "ElementaryTypeName",
                        "src": "11092:4:10"
                      }
                    ],
                    "id": 5380,
                    "name": "VariableDeclaration",
                    "src": "11092:4:10"
                  }
                ],
                "id": 5381,
                "name": "ParameterList",
                "src": "11091:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4870,
                      "type": "modifier (address)",
                      "value": "onlyGlobalConstraintsScheme"
                    },
                    "id": 5376,
                    "name": "Identifier",
                    "src": "11047:27:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5374,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5377,
                    "name": "Identifier",
                    "src": "11075:7:10"
                  }
                ],
                "id": 5378,
                "name": "ModifierInvocation",
                "src": "11047:36:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        5383
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "organization",
                          "scope": 5444,
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "type": "struct UController.Organization storage pointer",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Organization",
                              "referencedDeclaration": 4586,
                              "type": "struct UController.Organization storage pointer"
                            },
                            "id": 5382,
                            "name": "UserDefinedTypeName",
                            "src": "11112:12:10"
                          }
                        ],
                        "id": 5383,
                        "name": "VariableDeclaration",
                        "src": "11112:33:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct UController.Organization storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4590,
                              "type": "mapping(address => struct UController.Organization storage ref)",
                              "value": "organizations"
                            },
                            "id": 5384,
                            "name": "Identifier",
                            "src": "11148:13:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5374,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5385,
                            "name": "Identifier",
                            "src": "11162:7:10"
                          }
                        ],
                        "id": 5386,
                        "name": "IndexAccess",
                        "src": "11148:22:10"
                      }
                    ],
                    "id": 5387,
                    "name": "VariableDeclarationStatement",
                    "src": "11112:58:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!",
                          "prefix": true,
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "register",
                              "referencedDeclaration": 4565,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UController.GlobalConstraintRegister storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "globalConstraintsRegister",
                                      "referencedDeclaration": 4583,
                                      "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5383,
                                          "type": "struct UController.Organization storage pointer",
                                          "value": "organization"
                                        },
                                        "id": 5388,
                                        "name": "Identifier",
                                        "src": "11185:12:10"
                                      }
                                    ],
                                    "id": 5389,
                                    "name": "MemberAccess",
                                    "src": "11185:38:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5370,
                                      "type": "address",
                                      "value": "_globalConstraint"
                                    },
                                    "id": 5390,
                                    "name": "Identifier",
                                    "src": "11224:17:10"
                                  }
                                ],
                                "id": 5391,
                                "name": "IndexAccess",
                                "src": "11185:57:10"
                              }
                            ],
                            "id": 5392,
                            "name": "MemberAccess",
                            "src": "11185:66:10"
                          }
                        ],
                        "id": 5393,
                        "name": "UnaryOperation",
                        "src": "11184:67:10"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint256",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_struct$_GlobalConstraint_$4563_memory",
                                          "typeString": "struct UController.GlobalConstraint memory"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "push",
                                      "referencedDeclaration": null,
                                      "type": "function (struct UController.GlobalConstraint storage ref) returns (uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "globalConstraints",
                                          "referencedDeclaration": 4579,
                                          "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5383,
                                              "type": "struct UController.Organization storage pointer",
                                              "value": "organization"
                                            },
                                            "id": 5394,
                                            "name": "Identifier",
                                            "src": "11267:12:10"
                                          }
                                        ],
                                        "id": 5397,
                                        "name": "MemberAccess",
                                        "src": "11267:30:10"
                                      }
                                    ],
                                    "id": 5398,
                                    "name": "MemberAccess",
                                    "src": "11267:35:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": true,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "struct UController.GlobalConstraint memory",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4563,
                                          "type": "type(struct UController.GlobalConstraint storage pointer)",
                                          "value": "GlobalConstraint"
                                        },
                                        "id": 5399,
                                        "name": "Identifier",
                                        "src": "11303:16:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5370,
                                          "type": "address",
                                          "value": "_globalConstraint"
                                        },
                                        "id": 5400,
                                        "name": "Identifier",
                                        "src": "11320:17:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5372,
                                          "type": "bytes32",
                                          "value": "_params"
                                        },
                                        "id": 5401,
                                        "name": "Identifier",
                                        "src": "11338:7:10"
                                      }
                                    ],
                                    "id": 5402,
                                    "name": "FunctionCall",
                                    "src": "11303:43:10"
                                  }
                                ],
                                "id": 5403,
                                "name": "FunctionCall",
                                "src": "11267:80:10"
                              }
                            ],
                            "id": 5404,
                            "name": "ExpressionStatement",
                            "src": "11267:80:10"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "struct UController.GlobalConstraintRegister storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "struct UController.GlobalConstraintRegister storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "globalConstraintsRegister",
                                          "referencedDeclaration": 4583,
                                          "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5383,
                                              "type": "struct UController.Organization storage pointer",
                                              "value": "organization"
                                            },
                                            "id": 5405,
                                            "name": "Identifier",
                                            "src": "11361:12:10"
                                          }
                                        ],
                                        "id": 5408,
                                        "name": "MemberAccess",
                                        "src": "11361:38:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5370,
                                          "type": "address",
                                          "value": "_globalConstraint"
                                        },
                                        "id": 5407,
                                        "name": "Identifier",
                                        "src": "11400:17:10"
                                      }
                                    ],
                                    "id": 5409,
                                    "name": "IndexAccess",
                                    "src": "11361:57:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": true,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "struct UController.GlobalConstraintRegister memory",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bool",
                                              "typeString": "bool"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4568,
                                          "type": "type(struct UController.GlobalConstraintRegister storage pointer)",
                                          "value": "GlobalConstraintRegister"
                                        },
                                        "id": 5410,
                                        "name": "Identifier",
                                        "src": "11421:24:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "74727565",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "bool",
                                          "type": "bool",
                                          "value": "true"
                                        },
                                        "id": 5411,
                                        "name": "Literal",
                                        "src": "11446:4:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "-",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "length",
                                              "referencedDeclaration": null,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "globalConstraints",
                                                  "referencedDeclaration": 4579,
                                                  "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5383,
                                                      "type": "struct UController.Organization storage pointer",
                                                      "value": "organization"
                                                    },
                                                    "id": 5412,
                                                    "name": "Identifier",
                                                    "src": "11451:12:10"
                                                  }
                                                ],
                                                "id": 5413,
                                                "name": "MemberAccess",
                                                "src": "11451:30:10"
                                              }
                                            ],
                                            "id": 5414,
                                            "name": "MemberAccess",
                                            "src": "11451:37:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "hexvalue": "31",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "subdenomination": null,
                                              "token": "number",
                                              "type": "int_const 1",
                                              "value": "1"
                                            },
                                            "id": 5415,
                                            "name": "Literal",
                                            "src": "11489:1:10"
                                          }
                                        ],
                                        "id": 5416,
                                        "name": "BinaryOperation",
                                        "src": "11451:39:10"
                                      }
                                    ],
                                    "id": 5417,
                                    "name": "FunctionCall",
                                    "src": "11421:70:10"
                                  }
                                ],
                                "id": 5418,
                                "name": "Assignment",
                                "src": "11361:130:10"
                              }
                            ],
                            "id": 5419,
                            "name": "ExpressionStatement",
                            "src": "11361:130:10"
                          }
                        ],
                        "id": 5420,
                        "name": "Block",
                        "src": "11253:249:10"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "bytes32"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "member_name": "params",
                                      "referencedDeclaration": 4562,
                                      "type": "bytes32"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.GlobalConstraint storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "globalConstraints",
                                              "referencedDeclaration": 4579,
                                              "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5383,
                                                  "type": "struct UController.Organization storage pointer",
                                                  "value": "organization"
                                                },
                                                "id": 5421,
                                                "name": "Identifier",
                                                "src": "11521:12:10"
                                              }
                                            ],
                                            "id": 5428,
                                            "name": "MemberAccess",
                                            "src": "11521:30:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "index",
                                              "referencedDeclaration": 4567,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.GlobalConstraintRegister storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "globalConstraintsRegister",
                                                      "referencedDeclaration": 4583,
                                                      "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 5383,
                                                          "type": "struct UController.Organization storage pointer",
                                                          "value": "organization"
                                                        },
                                                        "id": 5423,
                                                        "name": "Identifier",
                                                        "src": "11552:12:10"
                                                      }
                                                    ],
                                                    "id": 5424,
                                                    "name": "MemberAccess",
                                                    "src": "11552:38:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5370,
                                                      "type": "address",
                                                      "value": "_globalConstraint"
                                                    },
                                                    "id": 5425,
                                                    "name": "Identifier",
                                                    "src": "11591:17:10"
                                                  }
                                                ],
                                                "id": 5426,
                                                "name": "IndexAccess",
                                                "src": "11552:57:10"
                                              }
                                            ],
                                            "id": 5427,
                                            "name": "MemberAccess",
                                            "src": "11552:63:10"
                                          }
                                        ],
                                        "id": 5429,
                                        "name": "IndexAccess",
                                        "src": "11521:95:10"
                                      }
                                    ],
                                    "id": 5430,
                                    "name": "MemberAccess",
                                    "src": "11521:102:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5372,
                                      "type": "bytes32",
                                      "value": "_params"
                                    },
                                    "id": 5431,
                                    "name": "Identifier",
                                    "src": "11626:7:10"
                                  }
                                ],
                                "id": 5432,
                                "name": "Assignment",
                                "src": "11521:112:10"
                              }
                            ],
                            "id": 5433,
                            "name": "ExpressionStatement",
                            "src": "11521:112:10"
                          }
                        ],
                        "id": 5434,
                        "name": "Block",
                        "src": "11507:137:10"
                      }
                    ],
                    "id": 5435,
                    "name": "IfStatement",
                    "src": "11180:464:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4693,
                              "type": "function (address,bytes32)",
                              "value": "AddGlobalConstraint"
                            },
                            "id": 5436,
                            "name": "Identifier",
                            "src": "11653:19:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5370,
                              "type": "address",
                              "value": "_globalConstraint"
                            },
                            "id": 5437,
                            "name": "Identifier",
                            "src": "11673:17:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5372,
                              "type": "bytes32",
                              "value": "_params"
                            },
                            "id": 5438,
                            "name": "Identifier",
                            "src": "11692:7:10"
                          }
                        ],
                        "id": 5439,
                        "name": "FunctionCall",
                        "src": "11653:47:10"
                      }
                    ],
                    "id": 5440,
                    "name": "ExpressionStatement",
                    "src": "11653:47:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5381
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 5441,
                        "name": "Literal",
                        "src": "11717:4:10"
                      }
                    ],
                    "id": 5442,
                    "name": "Return",
                    "src": "11710:11:10"
                  }
                ],
                "id": 5443,
                "name": "Block",
                "src": "11102:626:10"
              }
            ],
            "id": 5444,
            "name": "FunctionDefinition",
            "src": "10947:781:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "removeGlobalConstraint",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": 4279,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_globalConstraint",
                      "scope": 5542,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5445,
                        "name": "ElementaryTypeName",
                        "src": "11997:7:10"
                      }
                    ],
                    "id": 5446,
                    "name": "VariableDeclaration",
                    "src": "11997:25:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5542,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5447,
                        "name": "ElementaryTypeName",
                        "src": "12023:7:10"
                      }
                    ],
                    "id": 5448,
                    "name": "VariableDeclaration",
                    "src": "12023:15:10"
                  }
                ],
                "id": 5449,
                "name": "ParameterList",
                "src": "11996:43:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5542,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5453,
                        "name": "ElementaryTypeName",
                        "src": "12096:4:10"
                      }
                    ],
                    "id": 5454,
                    "name": "VariableDeclaration",
                    "src": "12096:4:10"
                  }
                ],
                "id": 5455,
                "name": "ParameterList",
                "src": "12095:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4870,
                      "type": "modifier (address)",
                      "value": "onlyGlobalConstraintsScheme"
                    },
                    "id": 5450,
                    "name": "Identifier",
                    "src": "12051:27:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5448,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5451,
                    "name": "Identifier",
                    "src": "12079:7:10"
                  }
                ],
                "id": 5452,
                "name": "ModifierInvocation",
                "src": "12051:36:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        5457
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "globalConstraintRegister",
                          "scope": 5542,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct UController.GlobalConstraintRegister memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "GlobalConstraintRegister",
                              "referencedDeclaration": 4568,
                              "type": "struct UController.GlobalConstraintRegister storage pointer"
                            },
                            "id": 5456,
                            "name": "UserDefinedTypeName",
                            "src": "12116:24:10"
                          }
                        ],
                        "id": 5457,
                        "name": "VariableDeclaration",
                        "src": "12116:56:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct UController.GlobalConstraintRegister storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "globalConstraintsRegister",
                              "referencedDeclaration": 4583,
                              "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UController.Organization storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4590,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 5458,
                                    "name": "Identifier",
                                    "src": "12175:13:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5448,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 5459,
                                    "name": "Identifier",
                                    "src": "12189:7:10"
                                  }
                                ],
                                "id": 5460,
                                "name": "IndexAccess",
                                "src": "12175:22:10"
                              }
                            ],
                            "id": 5461,
                            "name": "MemberAccess",
                            "src": "12175:48:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5446,
                              "type": "address",
                              "value": "_globalConstraint"
                            },
                            "id": 5462,
                            "name": "Identifier",
                            "src": "12224:17:10"
                          }
                        ],
                        "id": 5463,
                        "name": "IndexAccess",
                        "src": "12175:67:10"
                      }
                    ],
                    "id": 5464,
                    "name": "VariableDeclarationStatement",
                    "src": "12116:126:10"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        5468
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "globalConstraints",
                          "scope": 5542,
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "length": null,
                              "type": "struct UController.GlobalConstraint storage ref[] storage pointer"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "contractScope": null,
                                  "name": "GlobalConstraint",
                                  "referencedDeclaration": 4563,
                                  "type": "struct UController.GlobalConstraint storage pointer"
                                },
                                "id": 5466,
                                "name": "UserDefinedTypeName",
                                "src": "12252:16:10"
                              }
                            ],
                            "id": 5467,
                            "name": "ArrayTypeName",
                            "src": "12252:18:10"
                          }
                        ],
                        "id": 5468,
                        "name": "VariableDeclaration",
                        "src": "12252:44:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "globalConstraints",
                          "referencedDeclaration": 4579,
                          "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.Organization storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4590,
                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                  "value": "organizations"
                                },
                                "id": 5469,
                                "name": "Identifier",
                                "src": "12299:13:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5448,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 5470,
                                "name": "Identifier",
                                "src": "12313:7:10"
                              }
                            ],
                            "id": 5471,
                            "name": "IndexAccess",
                            "src": "12299:22:10"
                          }
                        ],
                        "id": 5472,
                        "name": "MemberAccess",
                        "src": "12299:40:10"
                      }
                    ],
                    "id": 5473,
                    "name": "VariableDeclarationStatement",
                    "src": "12252:87:10"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "register",
                          "referencedDeclaration": 4565,
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5457,
                              "type": "struct UController.GlobalConstraintRegister memory",
                              "value": "globalConstraintRegister"
                            },
                            "id": 5474,
                            "name": "Identifier",
                            "src": "12355:24:10"
                          }
                        ],
                        "id": 5475,
                        "name": "MemberAccess",
                        "src": "12355:33:10"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "index",
                                      "referencedDeclaration": 4567,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5457,
                                          "type": "struct UController.GlobalConstraintRegister memory",
                                          "value": "globalConstraintRegister"
                                        },
                                        "id": 5476,
                                        "name": "Identifier",
                                        "src": "12408:24:10"
                                      }
                                    ],
                                    "id": 5477,
                                    "name": "MemberAccess",
                                    "src": "12408:30:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "-",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "length",
                                          "referencedDeclaration": null,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5468,
                                              "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                                              "value": "globalConstraints"
                                            },
                                            "id": 5478,
                                            "name": "Identifier",
                                            "src": "12441:17:10"
                                          }
                                        ],
                                        "id": 5479,
                                        "name": "MemberAccess",
                                        "src": "12441:24:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 5480,
                                        "name": "Literal",
                                        "src": "12466:1:10"
                                      }
                                    ],
                                    "id": 5481,
                                    "name": "BinaryOperation",
                                    "src": "12441:26:10"
                                  }
                                ],
                                "id": 5482,
                                "name": "BinaryOperation",
                                "src": "12408:59:10"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "assignments": [
                                        5484
                                      ]
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "constant": false,
                                          "name": "globalConstraint",
                                          "scope": 5542,
                                          "stateVariable": false,
                                          "storageLocation": "memory",
                                          "type": "struct UController.GlobalConstraint memory",
                                          "value": null,
                                          "visibility": "internal"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "contractScope": null,
                                              "name": "GlobalConstraint",
                                              "referencedDeclaration": 4563,
                                              "type": "struct UController.GlobalConstraint storage pointer"
                                            },
                                            "id": 5483,
                                            "name": "UserDefinedTypeName",
                                            "src": "12487:16:10"
                                          }
                                        ],
                                        "id": 5484,
                                        "name": "VariableDeclaration",
                                        "src": "12487:40:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.GlobalConstraint storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "globalConstraints",
                                              "referencedDeclaration": 4579,
                                              "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.Organization storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4590,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 5485,
                                                    "name": "Identifier",
                                                    "src": "12530:13:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5448,
                                                      "type": "address",
                                                      "value": "_avatar"
                                                    },
                                                    "id": 5486,
                                                    "name": "Identifier",
                                                    "src": "12544:7:10"
                                                  }
                                                ],
                                                "id": 5487,
                                                "name": "IndexAccess",
                                                "src": "12530:22:10"
                                              }
                                            ],
                                            "id": 5488,
                                            "name": "MemberAccess",
                                            "src": "12530:40:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "-",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "length",
                                                  "referencedDeclaration": null,
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5468,
                                                      "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                                                      "value": "globalConstraints"
                                                    },
                                                    "id": 5489,
                                                    "name": "Identifier",
                                                    "src": "12571:17:10"
                                                  }
                                                ],
                                                "id": 5490,
                                                "name": "MemberAccess",
                                                "src": "12571:24:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "hexvalue": "31",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "subdenomination": null,
                                                  "token": "number",
                                                  "type": "int_const 1",
                                                  "value": "1"
                                                },
                                                "id": 5491,
                                                "name": "Literal",
                                                "src": "12596:1:10"
                                              }
                                            ],
                                            "id": 5492,
                                            "name": "BinaryOperation",
                                            "src": "12571:26:10"
                                          }
                                        ],
                                        "id": 5493,
                                        "name": "IndexAccess",
                                        "src": "12530:68:10"
                                      }
                                    ],
                                    "id": 5494,
                                    "name": "VariableDeclarationStatement",
                                    "src": "12487:111:10"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "=",
                                          "type": "struct UController.GlobalConstraint storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": true,
                                              "type": "struct UController.GlobalConstraint storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5468,
                                                  "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                                                  "value": "globalConstraints"
                                                },
                                                "id": 5495,
                                                "name": "Identifier",
                                                "src": "12616:17:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "index",
                                                  "referencedDeclaration": 4567,
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5457,
                                                      "type": "struct UController.GlobalConstraintRegister memory",
                                                      "value": "globalConstraintRegister"
                                                    },
                                                    "id": 5496,
                                                    "name": "Identifier",
                                                    "src": "12634:24:10"
                                                  }
                                                ],
                                                "id": 5497,
                                                "name": "MemberAccess",
                                                "src": "12634:30:10"
                                              }
                                            ],
                                            "id": 5498,
                                            "name": "IndexAccess",
                                            "src": "12616:49:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5484,
                                              "type": "struct UController.GlobalConstraint memory",
                                              "value": "globalConstraint"
                                            },
                                            "id": 5499,
                                            "name": "Identifier",
                                            "src": "12668:16:10"
                                          }
                                        ],
                                        "id": 5500,
                                        "name": "Assignment",
                                        "src": "12616:68:10"
                                      }
                                    ],
                                    "id": 5501,
                                    "name": "ExpressionStatement",
                                    "src": "12616:68:10"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": true,
                                              "member_name": "index",
                                              "referencedDeclaration": 4567,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.GlobalConstraintRegister storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "globalConstraintsRegister",
                                                      "referencedDeclaration": 4583,
                                                      "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "isConstant": false,
                                                          "isLValue": true,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "type": "struct UController.Organization storage ref"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 4590,
                                                              "type": "mapping(address => struct UController.Organization storage ref)",
                                                              "value": "organizations"
                                                            },
                                                            "id": 5502,
                                                            "name": "Identifier",
                                                            "src": "12702:13:10"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 5448,
                                                              "type": "address",
                                                              "value": "_avatar"
                                                            },
                                                            "id": 5503,
                                                            "name": "Identifier",
                                                            "src": "12716:7:10"
                                                          }
                                                        ],
                                                        "id": 5504,
                                                        "name": "IndexAccess",
                                                        "src": "12702:22:10"
                                                      }
                                                    ],
                                                    "id": 5505,
                                                    "name": "MemberAccess",
                                                    "src": "12702:48:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "gcAddress",
                                                      "referencedDeclaration": 4560,
                                                      "type": "address"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 5484,
                                                          "type": "struct UController.GlobalConstraint memory",
                                                          "value": "globalConstraint"
                                                        },
                                                        "id": 5506,
                                                        "name": "Identifier",
                                                        "src": "12751:16:10"
                                                      }
                                                    ],
                                                    "id": 5507,
                                                    "name": "MemberAccess",
                                                    "src": "12751:26:10"
                                                  }
                                                ],
                                                "id": 5508,
                                                "name": "IndexAccess",
                                                "src": "12702:76:10"
                                              }
                                            ],
                                            "id": 5509,
                                            "name": "MemberAccess",
                                            "src": "12702:82:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "index",
                                              "referencedDeclaration": 4567,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5457,
                                                  "type": "struct UController.GlobalConstraintRegister memory",
                                                  "value": "globalConstraintRegister"
                                                },
                                                "id": 5510,
                                                "name": "Identifier",
                                                "src": "12787:24:10"
                                              }
                                            ],
                                            "id": 5511,
                                            "name": "MemberAccess",
                                            "src": "12787:30:10"
                                          }
                                        ],
                                        "id": 5512,
                                        "name": "Assignment",
                                        "src": "12702:115:10"
                                      }
                                    ],
                                    "id": 5513,
                                    "name": "ExpressionStatement",
                                    "src": "12702:115:10"
                                  }
                                ],
                                "id": 5514,
                                "name": "Block",
                                "src": "12469:363:10"
                              }
                            ],
                            "id": 5515,
                            "name": "IfStatement",
                            "src": "12404:428:10"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "--",
                                  "prefix": false,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "member_name": "length",
                                      "referencedDeclaration": null,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5468,
                                          "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                                          "value": "globalConstraints"
                                        },
                                        "id": 5516,
                                        "name": "Identifier",
                                        "src": "12845:17:10"
                                      }
                                    ],
                                    "id": 5518,
                                    "name": "MemberAccess",
                                    "src": "12845:24:10"
                                  }
                                ],
                                "id": 5519,
                                "name": "UnaryOperation",
                                "src": "12845:26:10"
                              }
                            ],
                            "id": 5520,
                            "name": "ExpressionStatement",
                            "src": "12845:26:10"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "delete",
                                  "prefix": true,
                                  "type": "tuple()"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "struct UController.GlobalConstraintRegister storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "globalConstraintsRegister",
                                          "referencedDeclaration": 4583,
                                          "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct UController.Organization storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4590,
                                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                                  "value": "organizations"
                                                },
                                                "id": 5521,
                                                "name": "Identifier",
                                                "src": "12892:13:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5448,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 5522,
                                                "name": "Identifier",
                                                "src": "12906:7:10"
                                              }
                                            ],
                                            "id": 5523,
                                            "name": "IndexAccess",
                                            "src": "12892:22:10"
                                          }
                                        ],
                                        "id": 5524,
                                        "name": "MemberAccess",
                                        "src": "12892:48:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5446,
                                          "type": "address",
                                          "value": "_globalConstraint"
                                        },
                                        "id": 5525,
                                        "name": "Identifier",
                                        "src": "12941:17:10"
                                      }
                                    ],
                                    "id": 5526,
                                    "name": "IndexAccess",
                                    "src": "12892:67:10"
                                  }
                                ],
                                "id": 5527,
                                "name": "UnaryOperation",
                                "src": "12885:74:10"
                              }
                            ],
                            "id": 5528,
                            "name": "ExpressionStatement",
                            "src": "12885:74:10"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4699,
                                      "type": "function (address,uint256)",
                                      "value": "RemoveGlobalConstraint"
                                    },
                                    "id": 5529,
                                    "name": "Identifier",
                                    "src": "12973:22:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5446,
                                      "type": "address",
                                      "value": "_globalConstraint"
                                    },
                                    "id": 5530,
                                    "name": "Identifier",
                                    "src": "12996:17:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "index",
                                      "referencedDeclaration": 4567,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5457,
                                          "type": "struct UController.GlobalConstraintRegister memory",
                                          "value": "globalConstraintRegister"
                                        },
                                        "id": 5531,
                                        "name": "Identifier",
                                        "src": "13014:24:10"
                                      }
                                    ],
                                    "id": 5532,
                                    "name": "MemberAccess",
                                    "src": "13014:30:10"
                                  }
                                ],
                                "id": 5533,
                                "name": "FunctionCall",
                                "src": "12973:72:10"
                              }
                            ],
                            "id": 5534,
                            "name": "ExpressionStatement",
                            "src": "12973:72:10"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 5455
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "74727565",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "true"
                                },
                                "id": 5535,
                                "name": "Literal",
                                "src": "13066:4:10"
                              }
                            ],
                            "id": 5536,
                            "name": "Return",
                            "src": "13059:11:10"
                          }
                        ],
                        "id": 5537,
                        "name": "Block",
                        "src": "12390:691:10"
                      }
                    ],
                    "id": 5538,
                    "name": "IfStatement",
                    "src": "12351:730:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5455
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "66616c7365",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "false"
                        },
                        "id": 5539,
                        "name": "Literal",
                        "src": "13097:5:10"
                      }
                    ],
                    "id": 5540,
                    "name": "Return",
                    "src": "13090:12:10"
                  }
                ],
                "id": 5541,
                "name": "Block",
                "src": "12106:1003:10"
              }
            ],
            "id": 5542,
            "name": "FunctionDefinition",
            "src": "11964:1145:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "upgradeController",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": 4288,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_newController",
                      "scope": 5635,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5543,
                        "name": "ElementaryTypeName",
                        "src": "13412:7:10"
                      }
                    ],
                    "id": 5544,
                    "name": "VariableDeclaration",
                    "src": "13412:22:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5635,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5545,
                        "name": "ElementaryTypeName",
                        "src": "13435:7:10"
                      }
                    ],
                    "id": 5546,
                    "name": "VariableDeclaration",
                    "src": "13435:15:10"
                  }
                ],
                "id": 5547,
                "name": "ParameterList",
                "src": "13411:40:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5635,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5551,
                        "name": "ElementaryTypeName",
                        "src": "13500:4:10"
                      }
                    ],
                    "id": 5552,
                    "name": "VariableDeclaration",
                    "src": "13500:4:10"
                  }
                ],
                "id": 5553,
                "name": "ParameterList",
                "src": "13499:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4895,
                      "type": "modifier (address)",
                      "value": "onlyUpgradingScheme"
                    },
                    "id": 5548,
                    "name": "Identifier",
                    "src": "13463:19:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5546,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5549,
                    "name": "Identifier",
                    "src": "13483:7:10"
                  }
                ],
                "id": 5550,
                "name": "ModifierInvocation",
                "src": "13463:28:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5554,
                            "name": "Identifier",
                            "src": "13520:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4594,
                                      "type": "mapping(address => address)",
                                      "value": "newControllers"
                                    },
                                    "id": 5555,
                                    "name": "Identifier",
                                    "src": "13528:14:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5546,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 5556,
                                    "name": "Identifier",
                                    "src": "13543:7:10"
                                  }
                                ],
                                "id": 5557,
                                "name": "IndexAccess",
                                "src": "13528:23:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 5558,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "13555:7:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5559,
                                    "name": "Literal",
                                    "src": "13563:1:10"
                                  }
                                ],
                                "id": 5560,
                                "name": "FunctionCall",
                                "src": "13555:10:10"
                              }
                            ],
                            "id": 5561,
                            "name": "BinaryOperation",
                            "src": "13528:37:10"
                          }
                        ],
                        "id": 5562,
                        "name": "FunctionCall",
                        "src": "13520:46:10"
                      }
                    ],
                    "id": 5563,
                    "name": "ExpressionStatement",
                    "src": "13520:46:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5564,
                            "name": "Identifier",
                            "src": "13631:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5544,
                                  "type": "address",
                                  "value": "_newController"
                                },
                                "id": 5565,
                                "name": "Identifier",
                                "src": "13639:14:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 5566,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "13657:7:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5567,
                                    "name": "Literal",
                                    "src": "13665:1:10"
                                  }
                                ],
                                "id": 5568,
                                "name": "FunctionCall",
                                "src": "13657:10:10"
                              }
                            ],
                            "id": 5569,
                            "name": "BinaryOperation",
                            "src": "13639:28:10"
                          }
                        ],
                        "id": 5570,
                        "name": "FunctionCall",
                        "src": "13631:37:10"
                      }
                    ],
                    "id": 5571,
                    "name": "ExpressionStatement",
                    "src": "13631:37:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4594,
                                  "type": "mapping(address => address)",
                                  "value": "newControllers"
                                },
                                "id": 5572,
                                "name": "Identifier",
                                "src": "13678:14:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5546,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 5573,
                                "name": "Identifier",
                                "src": "13693:7:10"
                              }
                            ],
                            "id": 5574,
                            "name": "IndexAccess",
                            "src": "13678:23:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5544,
                              "type": "address",
                              "value": "_newController"
                            },
                            "id": 5575,
                            "name": "Identifier",
                            "src": "13704:14:10"
                          }
                        ],
                        "id": 5576,
                        "name": "Assignment",
                        "src": "13678:40:10"
                      }
                    ],
                    "id": 5577,
                    "name": "ExpressionStatement",
                    "src": "13678:40:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transferOwnership",
                              "referencedDeclaration": 10300,
                              "type": "function (address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract Avatar"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 5578,
                                        "name": "Identifier",
                                        "src": "13729:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5546,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5579,
                                        "name": "Identifier",
                                        "src": "13736:7:10"
                                      }
                                    ],
                                    "id": 5580,
                                    "name": "FunctionCall",
                                    "src": "13729:15:10"
                                  }
                                ],
                                "id": 5581,
                                "name": "TupleExpression",
                                "src": "13728:17:10"
                              }
                            ],
                            "id": 5582,
                            "name": "MemberAccess",
                            "src": "13728:35:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5544,
                              "type": "address",
                              "value": "_newController"
                            },
                            "id": 5583,
                            "name": "Identifier",
                            "src": "13764:14:10"
                          }
                        ],
                        "id": 5584,
                        "name": "FunctionCall",
                        "src": "13728:51:10"
                      }
                    ],
                    "id": 5585,
                    "name": "ExpressionStatement",
                    "src": "13728:51:10"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "owner",
                                  "referencedDeclaration": 10249,
                                  "type": "function () view external returns (address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "nativeToken",
                                      "referencedDeclaration": 4570,
                                      "type": "contract DAOToken"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.Organization storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4590,
                                              "type": "mapping(address => struct UController.Organization storage ref)",
                                              "value": "organizations"
                                            },
                                            "id": 5586,
                                            "name": "Identifier",
                                            "src": "13793:13:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5546,
                                              "type": "address",
                                              "value": "_avatar"
                                            },
                                            "id": 5587,
                                            "name": "Identifier",
                                            "src": "13807:7:10"
                                          }
                                        ],
                                        "id": 5588,
                                        "name": "IndexAccess",
                                        "src": "13793:22:10"
                                      }
                                    ],
                                    "id": 5589,
                                    "name": "MemberAccess",
                                    "src": "13793:34:10"
                                  }
                                ],
                                "id": 5590,
                                "name": "MemberAccess",
                                "src": "13793:40:10"
                              }
                            ],
                            "id": 5591,
                            "name": "FunctionCall",
                            "src": "13793:42:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_UController_$5865",
                                      "typeString": "contract UController"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 5592,
                                "name": "ElementaryTypeNameExpression",
                                "src": "13839:7:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10926,
                                  "type": "contract UController",
                                  "value": "this"
                                },
                                "id": 5593,
                                "name": "Identifier",
                                "src": "13847:4:10"
                              }
                            ],
                            "id": 5594,
                            "name": "FunctionCall",
                            "src": "13839:13:10"
                          }
                        ],
                        "id": 5595,
                        "name": "BinaryOperation",
                        "src": "13793:59:10"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "transferOwnership",
                                      "referencedDeclaration": 10300,
                                      "type": "function (address) external"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "nativeToken",
                                          "referencedDeclaration": 4570,
                                          "type": "contract DAOToken"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct UController.Organization storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4590,
                                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                                  "value": "organizations"
                                                },
                                                "id": 5596,
                                                "name": "Identifier",
                                                "src": "13868:13:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5546,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 5597,
                                                "name": "Identifier",
                                                "src": "13882:7:10"
                                              }
                                            ],
                                            "id": 5598,
                                            "name": "IndexAccess",
                                            "src": "13868:22:10"
                                          }
                                        ],
                                        "id": 5599,
                                        "name": "MemberAccess",
                                        "src": "13868:34:10"
                                      }
                                    ],
                                    "id": 5600,
                                    "name": "MemberAccess",
                                    "src": "13868:52:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5544,
                                      "type": "address",
                                      "value": "_newController"
                                    },
                                    "id": 5601,
                                    "name": "Identifier",
                                    "src": "13921:14:10"
                                  }
                                ],
                                "id": 5602,
                                "name": "FunctionCall",
                                "src": "13868:68:10"
                              }
                            ],
                            "id": 5603,
                            "name": "ExpressionStatement",
                            "src": "13868:68:10"
                          }
                        ],
                        "id": 5604,
                        "name": "Block",
                        "src": "13854:93:10"
                      }
                    ],
                    "id": 5605,
                    "name": "IfStatement",
                    "src": "13789:158:10"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "owner",
                                  "referencedDeclaration": 10249,
                                  "type": "function () view external returns (address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "nativeReputation",
                                      "referencedDeclaration": 4572,
                                      "type": "contract Reputation"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.Organization storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4590,
                                              "type": "mapping(address => struct UController.Organization storage ref)",
                                              "value": "organizations"
                                            },
                                            "id": 5606,
                                            "name": "Identifier",
                                            "src": "13960:13:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5546,
                                              "type": "address",
                                              "value": "_avatar"
                                            },
                                            "id": 5607,
                                            "name": "Identifier",
                                            "src": "13974:7:10"
                                          }
                                        ],
                                        "id": 5608,
                                        "name": "IndexAccess",
                                        "src": "13960:22:10"
                                      }
                                    ],
                                    "id": 5609,
                                    "name": "MemberAccess",
                                    "src": "13960:39:10"
                                  }
                                ],
                                "id": 5610,
                                "name": "MemberAccess",
                                "src": "13960:45:10"
                              }
                            ],
                            "id": 5611,
                            "name": "FunctionCall",
                            "src": "13960:47:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_UController_$5865",
                                      "typeString": "contract UController"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 5612,
                                "name": "ElementaryTypeNameExpression",
                                "src": "14011:7:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10926,
                                  "type": "contract UController",
                                  "value": "this"
                                },
                                "id": 5613,
                                "name": "Identifier",
                                "src": "14019:4:10"
                              }
                            ],
                            "id": 5614,
                            "name": "FunctionCall",
                            "src": "14011:13:10"
                          }
                        ],
                        "id": 5615,
                        "name": "BinaryOperation",
                        "src": "13960:64:10"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "transferOwnership",
                                      "referencedDeclaration": 10300,
                                      "type": "function (address) external"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "nativeReputation",
                                          "referencedDeclaration": 4572,
                                          "type": "contract Reputation"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct UController.Organization storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4590,
                                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                                  "value": "organizations"
                                                },
                                                "id": 5616,
                                                "name": "Identifier",
                                                "src": "14040:13:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5546,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 5617,
                                                "name": "Identifier",
                                                "src": "14054:7:10"
                                              }
                                            ],
                                            "id": 5618,
                                            "name": "IndexAccess",
                                            "src": "14040:22:10"
                                          }
                                        ],
                                        "id": 5619,
                                        "name": "MemberAccess",
                                        "src": "14040:39:10"
                                      }
                                    ],
                                    "id": 5620,
                                    "name": "MemberAccess",
                                    "src": "14040:57:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5544,
                                      "type": "address",
                                      "value": "_newController"
                                    },
                                    "id": 5621,
                                    "name": "Identifier",
                                    "src": "14098:14:10"
                                  }
                                ],
                                "id": 5622,
                                "name": "FunctionCall",
                                "src": "14040:73:10"
                              }
                            ],
                            "id": 5623,
                            "name": "ExpressionStatement",
                            "src": "14040:73:10"
                          }
                        ],
                        "id": 5624,
                        "name": "Block",
                        "src": "14026:98:10"
                      }
                    ],
                    "id": 5625,
                    "name": "IfStatement",
                    "src": "13956:168:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_UController_$5865",
                                  "typeString": "contract UController"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4707,
                              "type": "function (address,address,address)",
                              "value": "UpgradeController"
                            },
                            "id": 5626,
                            "name": "Identifier",
                            "src": "14133:17:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10926,
                              "type": "contract UController",
                              "value": "this"
                            },
                            "id": 5627,
                            "name": "Identifier",
                            "src": "14151:4:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5544,
                              "type": "address",
                              "value": "_newController"
                            },
                            "id": 5628,
                            "name": "Identifier",
                            "src": "14156:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5546,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5629,
                            "name": "Identifier",
                            "src": "14171:7:10"
                          }
                        ],
                        "id": 5630,
                        "name": "FunctionCall",
                        "src": "14133:46:10"
                      }
                    ],
                    "id": 5631,
                    "name": "ExpressionStatement",
                    "src": "14133:46:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5553
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 5632,
                        "name": "Literal",
                        "src": "14196:4:10"
                      }
                    ],
                    "id": 5633,
                    "name": "Return",
                    "src": "14189:11:10"
                  }
                ],
                "id": 5634,
                "name": "Block",
                "src": "13510:697:10"
              }
            ],
            "id": 5635,
            "name": "FunctionDefinition",
            "src": "13385:822:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "genericAction",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": 4298,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_params",
                      "scope": 5669,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "bytes32[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 5636,
                            "name": "ElementaryTypeName",
                            "src": "14616:7:10"
                          }
                        ],
                        "id": 5637,
                        "name": "ArrayTypeName",
                        "src": "14616:9:10"
                      }
                    ],
                    "id": 5638,
                    "name": "VariableDeclaration",
                    "src": "14616:17:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5669,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5639,
                        "name": "ElementaryTypeName",
                        "src": "14634:7:10"
                      }
                    ],
                    "id": 5640,
                    "name": "VariableDeclaration",
                    "src": "14634:15:10"
                  }
                ],
                "id": 5641,
                "name": "ParameterList",
                "src": "14615:35:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5669,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5649,
                        "name": "ElementaryTypeName",
                        "src": "14761:4:10"
                      }
                    ],
                    "id": 5650,
                    "name": "VariableDeclaration",
                    "src": "14761:4:10"
                  }
                ],
                "id": 5651,
                "name": "ParameterList",
                "src": "14760:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4820,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5642,
                    "name": "Identifier",
                    "src": "14666:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5640,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5643,
                    "name": "Identifier",
                    "src": "14687:7:10"
                  }
                ],
                "id": 5644,
                "name": "ModifierInvocation",
                "src": "14666:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4979,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5645,
                    "name": "Identifier",
                    "src": "14700:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "67656e65726963416374696f6e",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"genericAction\"",
                      "value": "genericAction"
                    },
                    "id": 5646,
                    "name": "Literal",
                    "src": "14724:15:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5640,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5647,
                    "name": "Identifier",
                    "src": "14740:7:10"
                  }
                ],
                "id": 5648,
                "name": "ModifierInvocation",
                "src": "14700:48:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4637,
                              "type": "function (address,bytes32[] memory)",
                              "value": "GenericAction"
                            },
                            "id": 5652,
                            "name": "Identifier",
                            "src": "14781:13:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5653,
                                "name": "Identifier",
                                "src": "14795:3:10"
                              }
                            ],
                            "id": 5654,
                            "name": "MemberAccess",
                            "src": "14795:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5638,
                              "type": "bytes32[] memory",
                              "value": "_params"
                            },
                            "id": 5655,
                            "name": "Identifier",
                            "src": "14807:7:10"
                          }
                        ],
                        "id": 5656,
                        "name": "FunctionCall",
                        "src": "14781:34:10"
                      }
                    ],
                    "id": 5657,
                    "name": "ExpressionStatement",
                    "src": "14781:34:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5651
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "genericAction",
                              "referencedDeclaration": 2919,
                              "type": "function (address,bytes32[] memory) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract Avatar"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 5658,
                                        "name": "Identifier",
                                        "src": "14833:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5640,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5659,
                                        "name": "Identifier",
                                        "src": "14840:7:10"
                                      }
                                    ],
                                    "id": 5660,
                                    "name": "FunctionCall",
                                    "src": "14833:15:10"
                                  }
                                ],
                                "id": 5661,
                                "name": "TupleExpression",
                                "src": "14832:17:10"
                              }
                            ],
                            "id": 5662,
                            "name": "MemberAccess",
                            "src": "14832:31:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5663,
                                "name": "Identifier",
                                "src": "14864:3:10"
                              }
                            ],
                            "id": 5664,
                            "name": "MemberAccess",
                            "src": "14864:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5638,
                              "type": "bytes32[] memory",
                              "value": "_params"
                            },
                            "id": 5665,
                            "name": "Identifier",
                            "src": "14876:7:10"
                          }
                        ],
                        "id": 5666,
                        "name": "FunctionCall",
                        "src": "14832:52:10"
                      }
                    ],
                    "id": 5667,
                    "name": "Return",
                    "src": "14825:59:10"
                  }
                ],
                "id": 5668,
                "name": "Block",
                "src": "14771:120:10"
              }
            ],
            "id": 5669,
            "name": "FunctionDefinition",
            "src": "14593:298:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "sendEther",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": 4309,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amountInWei",
                      "scope": 5704,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5670,
                        "name": "ElementaryTypeName",
                        "src": "15149:4:10"
                      }
                    ],
                    "id": 5671,
                    "name": "VariableDeclaration",
                    "src": "15149:17:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 5704,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5672,
                        "name": "ElementaryTypeName",
                        "src": "15168:7:10"
                      }
                    ],
                    "id": 5673,
                    "name": "VariableDeclaration",
                    "src": "15168:11:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5704,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5674,
                        "name": "ElementaryTypeName",
                        "src": "15180:7:10"
                      }
                    ],
                    "id": 5675,
                    "name": "VariableDeclaration",
                    "src": "15180:15:10"
                  }
                ],
                "id": 5676,
                "name": "ParameterList",
                "src": "15148:48:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5704,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5684,
                        "name": "ElementaryTypeName",
                        "src": "15303:4:10"
                      }
                    ],
                    "id": 5685,
                    "name": "VariableDeclaration",
                    "src": "15303:4:10"
                  }
                ],
                "id": 5686,
                "name": "ParameterList",
                "src": "15302:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4820,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5677,
                    "name": "Identifier",
                    "src": "15212:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5675,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5678,
                    "name": "Identifier",
                    "src": "15233:7:10"
                  }
                ],
                "id": 5679,
                "name": "ModifierInvocation",
                "src": "15212:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4979,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5680,
                    "name": "Identifier",
                    "src": "15246:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "73656e644574686572",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"sendEther\"",
                      "value": "sendEther"
                    },
                    "id": 5681,
                    "name": "Literal",
                    "src": "15270:11:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5675,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5682,
                    "name": "Identifier",
                    "src": "15282:7:10"
                  }
                ],
                "id": 5683,
                "name": "ModifierInvocation",
                "src": "15246:44:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4645,
                              "type": "function (address,uint256,address)",
                              "value": "SendEther"
                            },
                            "id": 5687,
                            "name": "Identifier",
                            "src": "15323:9:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5688,
                                "name": "Identifier",
                                "src": "15333:3:10"
                              }
                            ],
                            "id": 5689,
                            "name": "MemberAccess",
                            "src": "15333:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5671,
                              "type": "uint256",
                              "value": "_amountInWei"
                            },
                            "id": 5690,
                            "name": "Identifier",
                            "src": "15345:12:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5673,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 5691,
                            "name": "Identifier",
                            "src": "15359:3:10"
                          }
                        ],
                        "id": 5692,
                        "name": "FunctionCall",
                        "src": "15323:40:10"
                      }
                    ],
                    "id": 5693,
                    "name": "ExpressionStatement",
                    "src": "15323:40:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5686
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sendEther",
                              "referencedDeclaration": 2944,
                              "type": "function (uint256,address) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract Avatar"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 5694,
                                        "name": "Identifier",
                                        "src": "15381:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5675,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5695,
                                        "name": "Identifier",
                                        "src": "15388:7:10"
                                      }
                                    ],
                                    "id": 5696,
                                    "name": "FunctionCall",
                                    "src": "15381:15:10"
                                  }
                                ],
                                "id": 5697,
                                "name": "TupleExpression",
                                "src": "15380:17:10"
                              }
                            ],
                            "id": 5698,
                            "name": "MemberAccess",
                            "src": "15380:27:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5671,
                              "type": "uint256",
                              "value": "_amountInWei"
                            },
                            "id": 5699,
                            "name": "Identifier",
                            "src": "15408:12:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5673,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 5700,
                            "name": "Identifier",
                            "src": "15422:3:10"
                          }
                        ],
                        "id": 5701,
                        "name": "FunctionCall",
                        "src": "15380:46:10"
                      }
                    ],
                    "id": 5702,
                    "name": "Return",
                    "src": "15373:53:10"
                  }
                ],
                "id": 5703,
                "name": "Block",
                "src": "15313:120:10"
              }
            ],
            "id": 5704,
            "name": "FunctionDefinition",
            "src": "15130:303:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenTransfer",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": 4322,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 5743,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10855,
                          "type": "contract StandardToken"
                        },
                        "id": 5705,
                        "name": "UserDefinedTypeName",
                        "src": "15794:13:10"
                      }
                    ],
                    "id": 5706,
                    "name": "VariableDeclaration",
                    "src": "15794:28:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 5743,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5707,
                        "name": "ElementaryTypeName",
                        "src": "15824:7:10"
                      }
                    ],
                    "id": 5708,
                    "name": "VariableDeclaration",
                    "src": "15824:11:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_value",
                      "scope": 5743,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5709,
                        "name": "ElementaryTypeName",
                        "src": "15837:4:10"
                      }
                    ],
                    "id": 5710,
                    "name": "VariableDeclaration",
                    "src": "15837:11:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5743,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5711,
                        "name": "ElementaryTypeName",
                        "src": "15849:7:10"
                      }
                    ],
                    "id": 5712,
                    "name": "VariableDeclaration",
                    "src": "15849:15:10"
                  }
                ],
                "id": 5713,
                "name": "ParameterList",
                "src": "15793:72:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5743,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5721,
                        "name": "ElementaryTypeName",
                        "src": "15984:4:10"
                      }
                    ],
                    "id": 5722,
                    "name": "VariableDeclaration",
                    "src": "15984:4:10"
                  }
                ],
                "id": 5723,
                "name": "ParameterList",
                "src": "15983:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4820,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5714,
                    "name": "Identifier",
                    "src": "15881:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5712,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5715,
                    "name": "Identifier",
                    "src": "15902:7:10"
                  }
                ],
                "id": 5716,
                "name": "ModifierInvocation",
                "src": "15881:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4979,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5717,
                    "name": "Identifier",
                    "src": "15915:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "65787465726e616c546f6b656e5472616e73666572",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"externalTokenTransfer\"",
                      "value": "externalTokenTransfer"
                    },
                    "id": 5718,
                    "name": "Literal",
                    "src": "15939:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5712,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5719,
                    "name": "Identifier",
                    "src": "15963:7:10"
                  }
                ],
                "id": 5720,
                "name": "ModifierInvocation",
                "src": "15915:56:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10855",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4655,
                              "type": "function (address,address,address,uint256)",
                              "value": "ExternalTokenTransfer"
                            },
                            "id": 5724,
                            "name": "Identifier",
                            "src": "16004:21:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5725,
                                "name": "Identifier",
                                "src": "16026:3:10"
                              }
                            ],
                            "id": 5726,
                            "name": "MemberAccess",
                            "src": "16026:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5706,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5727,
                            "name": "Identifier",
                            "src": "16038:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5708,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 5728,
                            "name": "Identifier",
                            "src": "16054:3:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5710,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 5729,
                            "name": "Identifier",
                            "src": "16059:6:10"
                          }
                        ],
                        "id": 5730,
                        "name": "FunctionCall",
                        "src": "16004:62:10"
                      }
                    ],
                    "id": 5731,
                    "name": "ExpressionStatement",
                    "src": "16004:62:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5723
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10855",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "externalTokenTransfer",
                              "referencedDeclaration": 2973,
                              "type": "function (contract StandardToken,address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract Avatar"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 5732,
                                        "name": "Identifier",
                                        "src": "16084:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5712,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5733,
                                        "name": "Identifier",
                                        "src": "16091:7:10"
                                      }
                                    ],
                                    "id": 5734,
                                    "name": "FunctionCall",
                                    "src": "16084:15:10"
                                  }
                                ],
                                "id": 5735,
                                "name": "TupleExpression",
                                "src": "16083:17:10"
                              }
                            ],
                            "id": 5736,
                            "name": "MemberAccess",
                            "src": "16083:39:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5706,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5737,
                            "name": "Identifier",
                            "src": "16123:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5708,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 5738,
                            "name": "Identifier",
                            "src": "16139:3:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5710,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 5739,
                            "name": "Identifier",
                            "src": "16144:6:10"
                          }
                        ],
                        "id": 5740,
                        "name": "FunctionCall",
                        "src": "16083:68:10"
                      }
                    ],
                    "id": 5741,
                    "name": "Return",
                    "src": "16076:75:10"
                  }
                ],
                "id": 5742,
                "name": "Block",
                "src": "15994:164:10"
              }
            ],
            "id": 5743,
            "name": "FunctionDefinition",
            "src": "15763:395:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenTransferFrom",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": 4337,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 5786,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10855,
                          "type": "contract StandardToken"
                        },
                        "id": 5744,
                        "name": "UserDefinedTypeName",
                        "src": "16729:13:10"
                      }
                    ],
                    "id": 5745,
                    "name": "VariableDeclaration",
                    "src": "16729:28:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_from",
                      "scope": 5786,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5746,
                        "name": "ElementaryTypeName",
                        "src": "16759:7:10"
                      }
                    ],
                    "id": 5747,
                    "name": "VariableDeclaration",
                    "src": "16759:13:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 5786,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5748,
                        "name": "ElementaryTypeName",
                        "src": "16774:7:10"
                      }
                    ],
                    "id": 5749,
                    "name": "VariableDeclaration",
                    "src": "16774:11:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_value",
                      "scope": 5786,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5750,
                        "name": "ElementaryTypeName",
                        "src": "16787:4:10"
                      }
                    ],
                    "id": 5751,
                    "name": "VariableDeclaration",
                    "src": "16787:11:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5786,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5752,
                        "name": "ElementaryTypeName",
                        "src": "16799:7:10"
                      }
                    ],
                    "id": 5753,
                    "name": "VariableDeclaration",
                    "src": "16799:15:10"
                  }
                ],
                "id": 5754,
                "name": "ParameterList",
                "src": "16728:87:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5786,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5762,
                        "name": "ElementaryTypeName",
                        "src": "16938:4:10"
                      }
                    ],
                    "id": 5763,
                    "name": "VariableDeclaration",
                    "src": "16938:4:10"
                  }
                ],
                "id": 5764,
                "name": "ParameterList",
                "src": "16937:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4820,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5755,
                    "name": "Identifier",
                    "src": "16831:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5753,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5756,
                    "name": "Identifier",
                    "src": "16852:7:10"
                  }
                ],
                "id": 5757,
                "name": "ModifierInvocation",
                "src": "16831:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4979,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5758,
                    "name": "Identifier",
                    "src": "16865:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "65787465726e616c546f6b656e5472616e7366657246726f6d",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"externalTokenTransferFrom\"",
                      "value": "externalTokenTransferFrom"
                    },
                    "id": 5759,
                    "name": "Literal",
                    "src": "16889:27:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5753,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5760,
                    "name": "Identifier",
                    "src": "16917:7:10"
                  }
                ],
                "id": 5761,
                "name": "ModifierInvocation",
                "src": "16865:60:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10855",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4667,
                              "type": "function (address,address,address,address,uint256)",
                              "value": "ExternalTokenTransferFrom"
                            },
                            "id": 5765,
                            "name": "Identifier",
                            "src": "16958:25:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5766,
                                "name": "Identifier",
                                "src": "16984:3:10"
                              }
                            ],
                            "id": 5767,
                            "name": "MemberAccess",
                            "src": "16984:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5745,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5768,
                            "name": "Identifier",
                            "src": "16996:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5747,
                              "type": "address",
                              "value": "_from"
                            },
                            "id": 5769,
                            "name": "Identifier",
                            "src": "17012:5:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5749,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 5770,
                            "name": "Identifier",
                            "src": "17019:3:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5751,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 5771,
                            "name": "Identifier",
                            "src": "17024:6:10"
                          }
                        ],
                        "id": 5772,
                        "name": "FunctionCall",
                        "src": "16958:73:10"
                      }
                    ],
                    "id": 5773,
                    "name": "ExpressionStatement",
                    "src": "16958:73:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5764
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10855",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "externalTokenTransferFrom",
                              "referencedDeclaration": 3006,
                              "type": "function (contract StandardToken,address,address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract Avatar"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 5774,
                                        "name": "Identifier",
                                        "src": "17049:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5753,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5775,
                                        "name": "Identifier",
                                        "src": "17056:7:10"
                                      }
                                    ],
                                    "id": 5776,
                                    "name": "FunctionCall",
                                    "src": "17049:15:10"
                                  }
                                ],
                                "id": 5777,
                                "name": "TupleExpression",
                                "src": "17048:17:10"
                              }
                            ],
                            "id": 5778,
                            "name": "MemberAccess",
                            "src": "17048:43:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5745,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5779,
                            "name": "Identifier",
                            "src": "17092:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5747,
                              "type": "address",
                              "value": "_from"
                            },
                            "id": 5780,
                            "name": "Identifier",
                            "src": "17108:5:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5749,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 5781,
                            "name": "Identifier",
                            "src": "17115:3:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5751,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 5782,
                            "name": "Identifier",
                            "src": "17120:6:10"
                          }
                        ],
                        "id": 5783,
                        "name": "FunctionCall",
                        "src": "17048:79:10"
                      }
                    ],
                    "id": 5784,
                    "name": "Return",
                    "src": "17041:86:10"
                  }
                ],
                "id": 5785,
                "name": "Block",
                "src": "16948:186:10"
              }
            ],
            "id": 5786,
            "name": "FunctionDefinition",
            "src": "16694:440:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenIncreaseApproval",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": 4350,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 5825,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10855,
                          "type": "contract StandardToken"
                        },
                        "id": 5787,
                        "name": "UserDefinedTypeName",
                        "src": "17595:13:10"
                      }
                    ],
                    "id": 5788,
                    "name": "VariableDeclaration",
                    "src": "17595:28:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 5825,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5789,
                        "name": "ElementaryTypeName",
                        "src": "17625:7:10"
                      }
                    ],
                    "id": 5790,
                    "name": "VariableDeclaration",
                    "src": "17625:16:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_addedValue",
                      "scope": 5825,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5791,
                        "name": "ElementaryTypeName",
                        "src": "17643:4:10"
                      }
                    ],
                    "id": 5792,
                    "name": "VariableDeclaration",
                    "src": "17643:16:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5825,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5793,
                        "name": "ElementaryTypeName",
                        "src": "17660:7:10"
                      }
                    ],
                    "id": 5794,
                    "name": "VariableDeclaration",
                    "src": "17660:15:10"
                  }
                ],
                "id": 5795,
                "name": "ParameterList",
                "src": "17594:82:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5825,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5803,
                        "name": "ElementaryTypeName",
                        "src": "17803:4:10"
                      }
                    ],
                    "id": 5804,
                    "name": "VariableDeclaration",
                    "src": "17803:4:10"
                  }
                ],
                "id": 5805,
                "name": "ParameterList",
                "src": "17802:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4820,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5796,
                    "name": "Identifier",
                    "src": "17692:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5794,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5797,
                    "name": "Identifier",
                    "src": "17713:7:10"
                  }
                ],
                "id": 5798,
                "name": "ModifierInvocation",
                "src": "17692:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4979,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5799,
                    "name": "Identifier",
                    "src": "17726:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "65787465726e616c546f6b656e496e637265617365417070726f76616c",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"externalTokenIncreaseApproval\"",
                      "value": "externalTokenIncreaseApproval"
                    },
                    "id": 5800,
                    "name": "Literal",
                    "src": "17750:31:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5794,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5801,
                    "name": "Identifier",
                    "src": "17782:7:10"
                  }
                ],
                "id": 5802,
                "name": "ModifierInvocation",
                "src": "17726:64:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10855",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4677,
                              "type": "function (address,contract StandardToken,address,uint256)",
                              "value": "ExternalTokenIncreaseApproval"
                            },
                            "id": 5806,
                            "name": "Identifier",
                            "src": "17823:29:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5807,
                                "name": "Identifier",
                                "src": "17853:3:10"
                              }
                            ],
                            "id": 5808,
                            "name": "MemberAccess",
                            "src": "17853:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5788,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5809,
                            "name": "Identifier",
                            "src": "17864:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5790,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 5810,
                            "name": "Identifier",
                            "src": "17879:8:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5792,
                              "type": "uint256",
                              "value": "_addedValue"
                            },
                            "id": 5811,
                            "name": "Identifier",
                            "src": "17888:11:10"
                          }
                        ],
                        "id": 5812,
                        "name": "FunctionCall",
                        "src": "17823:77:10"
                      }
                    ],
                    "id": 5813,
                    "name": "ExpressionStatement",
                    "src": "17823:77:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5805
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10855",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "externalTokenIncreaseApproval",
                              "referencedDeclaration": 3035,
                              "type": "function (contract StandardToken,address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract Avatar"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 5814,
                                        "name": "Identifier",
                                        "src": "17918:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5794,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5815,
                                        "name": "Identifier",
                                        "src": "17925:7:10"
                                      }
                                    ],
                                    "id": 5816,
                                    "name": "FunctionCall",
                                    "src": "17918:15:10"
                                  }
                                ],
                                "id": 5817,
                                "name": "TupleExpression",
                                "src": "17917:17:10"
                              }
                            ],
                            "id": 5818,
                            "name": "MemberAccess",
                            "src": "17917:47:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5788,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5819,
                            "name": "Identifier",
                            "src": "17965:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5790,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 5820,
                            "name": "Identifier",
                            "src": "17981:8:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5792,
                              "type": "uint256",
                              "value": "_addedValue"
                            },
                            "id": 5821,
                            "name": "Identifier",
                            "src": "17991:11:10"
                          }
                        ],
                        "id": 5822,
                        "name": "FunctionCall",
                        "src": "17917:86:10"
                      }
                    ],
                    "id": 5823,
                    "name": "Return",
                    "src": "17910:93:10"
                  }
                ],
                "id": 5824,
                "name": "Block",
                "src": "17813:197:10"
              }
            ],
            "id": 5825,
            "name": "FunctionDefinition",
            "src": "17556:454:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenDecreaseApproval",
              "payable": false,
              "scope": 5865,
              "stateMutability": "nonpayable",
              "superFunction": 4363,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 5864,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10855,
                          "type": "contract StandardToken"
                        },
                        "id": 5826,
                        "name": "UserDefinedTypeName",
                        "src": "18476:13:10"
                      }
                    ],
                    "id": 5827,
                    "name": "VariableDeclaration",
                    "src": "18476:28:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 5864,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5828,
                        "name": "ElementaryTypeName",
                        "src": "18506:7:10"
                      }
                    ],
                    "id": 5829,
                    "name": "VariableDeclaration",
                    "src": "18506:16:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_subtractedValue",
                      "scope": 5864,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5830,
                        "name": "ElementaryTypeName",
                        "src": "18524:4:10"
                      }
                    ],
                    "id": 5831,
                    "name": "VariableDeclaration",
                    "src": "18524:21:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5864,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5832,
                        "name": "ElementaryTypeName",
                        "src": "18546:7:10"
                      }
                    ],
                    "id": 5833,
                    "name": "VariableDeclaration",
                    "src": "18546:15:10"
                  }
                ],
                "id": 5834,
                "name": "ParameterList",
                "src": "18475:87:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5864,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5842,
                        "name": "ElementaryTypeName",
                        "src": "18689:4:10"
                      }
                    ],
                    "id": 5843,
                    "name": "VariableDeclaration",
                    "src": "18689:4:10"
                  }
                ],
                "id": 5844,
                "name": "ParameterList",
                "src": "18688:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4820,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5835,
                    "name": "Identifier",
                    "src": "18578:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5833,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5836,
                    "name": "Identifier",
                    "src": "18599:7:10"
                  }
                ],
                "id": 5837,
                "name": "ModifierInvocation",
                "src": "18578:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4979,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5838,
                    "name": "Identifier",
                    "src": "18612:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "65787465726e616c546f6b656e4465637265617365417070726f76616c",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"externalTokenDecreaseApproval\"",
                      "value": "externalTokenDecreaseApproval"
                    },
                    "id": 5839,
                    "name": "Literal",
                    "src": "18636:31:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5833,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5840,
                    "name": "Identifier",
                    "src": "18668:7:10"
                  }
                ],
                "id": 5841,
                "name": "ModifierInvocation",
                "src": "18612:64:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10855",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4687,
                              "type": "function (address,contract StandardToken,address,uint256)",
                              "value": "ExternalTokenDecreaseApproval"
                            },
                            "id": 5845,
                            "name": "Identifier",
                            "src": "18709:29:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5846,
                                "name": "Identifier",
                                "src": "18739:3:10"
                              }
                            ],
                            "id": 5847,
                            "name": "MemberAccess",
                            "src": "18739:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5827,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5848,
                            "name": "Identifier",
                            "src": "18750:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5829,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 5849,
                            "name": "Identifier",
                            "src": "18765:8:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5831,
                              "type": "uint256",
                              "value": "_subtractedValue"
                            },
                            "id": 5850,
                            "name": "Identifier",
                            "src": "18774:16:10"
                          }
                        ],
                        "id": 5851,
                        "name": "FunctionCall",
                        "src": "18709:82:10"
                      }
                    ],
                    "id": 5852,
                    "name": "ExpressionStatement",
                    "src": "18709:82:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5844
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10855",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "externalTokenDecreaseApproval",
                              "referencedDeclaration": 3064,
                              "type": "function (contract StandardToken,address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract Avatar"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 5853,
                                        "name": "Identifier",
                                        "src": "18809:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5833,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5854,
                                        "name": "Identifier",
                                        "src": "18816:7:10"
                                      }
                                    ],
                                    "id": 5855,
                                    "name": "FunctionCall",
                                    "src": "18809:15:10"
                                  }
                                ],
                                "id": 5856,
                                "name": "TupleExpression",
                                "src": "18808:17:10"
                              }
                            ],
                            "id": 5857,
                            "name": "MemberAccess",
                            "src": "18808:47:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5827,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5858,
                            "name": "Identifier",
                            "src": "18856:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5829,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 5859,
                            "name": "Identifier",
                            "src": "18872:8:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5831,
                              "type": "uint256",
                              "value": "_subtractedValue"
                            },
                            "id": 5860,
                            "name": "Identifier",
                            "src": "18882:16:10"
                          }
                        ],
                        "id": 5861,
                        "name": "FunctionCall",
                        "src": "18808:91:10"
                      }
                    ],
                    "id": 5862,
                    "name": "Return",
                    "src": "18801:98:10"
                  }
                ],
                "id": 5863,
                "name": "Block",
                "src": "18699:207:10"
              }
            ],
            "id": 5864,
            "name": "FunctionDefinition",
            "src": "18437:469:10"
          }
        ],
        "id": 5865,
        "name": "ContractDefinition",
        "src": "504:18404:10"
      }
    ],
    "id": 5866,
    "name": "SourceUnit",
    "src": "0:18909:10"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {
    "1516886047983": {
      "events": {},
      "links": {},
      "address": "0x9be87b8959bf0eaad4e80a46388153472c159043"
    }
  },
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-01-25T13:15:04.351Z"
}