{
  "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": "0x6060604052341561000f57600080fd5b6137f08061001e6000396000f3006060604052600436106101035763ffffffff60e060020a600035041663039de01d81146101085780631c4d56081461014157806342427bf8146101785780634f52b5be1461019d5780634fe125a3146101c257806360351748146101fd578063634965da146102575780636407e4321461027f578063644b98ed146102a75780636c525b13146102d65780636cfc6582146102f5578063824f2f1f1461031d5780639b51e35a1461033c5780639be2faed14610393578063b9981364146103b8578063b9a04cdd146103d9578063c6ab78b914610408578063e4537a7414610437578063e869d45f14610460578063f76488be146104ac578063fb4856a2146104d1575b600080fd5b341561011357600080fd5b61012d600160a060020a0360043581169060243516610506565b604051901515815260200160405180910390f35b341561014c57600080fd5b610166600160a060020a036004358116906024351661090a565b60405190815260200160405180910390f35b341561018357600080fd5b61012d600160a060020a0360043581169060243516610938565b34156101a857600080fd5b61012d600160a060020a0360043581169060243516610cbb565b34156101cd57600080fd5b6101e1600160a060020a0360043516610f4a565b604051600160a060020a03909116815260200160405180910390f35b341561020857600080fd5b61012d600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965050509235600160a060020a03169250610f65915050565b341561026257600080fd5b61012d600435600160a060020a036024358116906044351661135e565b341561028a57600080fd5b61012d600435600160a060020a03602435811690604435166116d6565b34156102b257600080fd5b61012d600160a060020a036004358116906024358116906044359060643516611a60565b34156102e157600080fd5b61012d600160a060020a0360043516611df6565b341561030057600080fd5b61012d600435600160a060020a0360243581169060443516611e88565b341561032857600080fd5b610166600160a060020a0360043516612215565b341561034757600080fd5b610361600160a060020a0360043581169060243516612233565b6040517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909116815260200160405180910390f35b341561039e57600080fd5b61012d600160a060020a036004358116906024351661226a565b34156103c357600080fd5b6103d7600160a060020a03600435166122a6565b005b34156103e457600080fd5b61012d600160a060020a03600435811690602435811690604435906064351661253e565b341561041357600080fd5b61012d600160a060020a0360043581169060243581169060443590606435166128c0565b341561044257600080fd5b61012d600160a060020a036004358116906024359060443516612c49565b341561046b57600080fd5b61012d600160a060020a03600435811690602435907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19604435169060643516612e3c565b34156104b757600080fd5b61012d600160a060020a036004358116906024351661335d565b34156104dc57600080fd5b61012d600160a060020a03600435811690602435811690604435811690606435906084351661338e565b600160a060020a038082166000908152602081815260408083203390941683526002939093019052908120600101548190839060e060020a027c02000000000000000000000000000000000000000000000000000000009081161461056a57600080fd5b7f756e7265676973746572536368656d6500000000000000000000000000000000846000610596613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015610623576000848152602090206002830201604080519081016040528154600160a060020a03168152600191820154602080830191909152908352920191016105db565b505050509050600091505b80518210156106fd5780828151811061064357fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061066957fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156106cc57600080fd5b6102c65a03f115156106dd57600080fd5b5050506040518051905015156106f257600080fd5b60019091019061062e565b600160a060020a03808916600090815260208181526040808320938d16835260029093019052206001015460e060020a908102965086161515610743576000965061082a565b600160a060020a0388811660009081526020818152604080832033909416835260029093019052206001015460e060020a021986167c0f0000000000000000000000000000000000000000000000000000000016156107a157600080fd5b87600160a060020a031689600160a060020a031633600160a060020a03167f6c6acccb2a8bdecd133efe43bc929b25f75255a88da20af641c9ba4acc0e0e5b60405160405180910390a4600160a060020a03808916600090815260208181526040808320938d168352600290930190529081209081556001908101805463ffffffff1916905596505b600091505b80518210156108fe5780828151811061084457fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061086a57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156108cd57600080fd5b6102c65a03f115156108de57600080fd5b5050506040518051905015156108f357600080fd5b60019091019061082f565b50505050505092915050565b600160a060020a03808216600090815260208181526040808320938616835260029093019052205492915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a027c08000000000000000000000000000000000000000000000000000000009081161461099957600080fd5b600160a060020a0383811660009081526001602052604090205416156109be57600080fd5b600160a060020a03841615156109d357600080fd5b600160a060020a03838116600081815260016020526040908190208054600160a060020a031916938816939093179092559063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610a4957600080fd5b6102c65a03f11515610a5a57600080fd5b505050600160a060020a0383811660009081526020819052604080822054308416931691638da5cb5b9151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ab757600080fd5b6102c65a03f11515610ac857600080fd5b50505060405180519050600160a060020a03161415610b5a57600160a060020a0380841660009081526020819052604090819020549091169063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610b4557600080fd5b6102c65a03f11515610b5657600080fd5b5050505b600160a060020a0383811660009081526020819052604080822060010154308416931691638da5cb5b9151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610bb757600080fd5b6102c65a03f11515610bc857600080fd5b50505060405180519050600160a060020a03161415610c5d57600160a060020a0380841660009081526020819052604090819020600101549091169063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610c4857600080fd5b6102c65a03f11515610c5957600080fd5b5050505b7f8206909fdb23a8ad42188f753026bc9082758d85e20dce9bc8c4b34f2ec3db32308585604051600160a060020a03938416815291831660208301529091166040808301919091526060909101905180910390a15060019392505050565b6000610cc561374a565b6000610ccf61374a565b600160a060020a03808616600090815260208181526040808320339094168352600290930190522060010154859060e060020a027c040000000000000000000000000000000000000000000000000000000090811614610d2e57600080fd5b600160a060020a03808716600090815260208181526040808320938b168352600490930190528190209080519081016040908152825460ff1615158252600190920154602080830191909152600160a060020a038916600090815290819052919091209094506003019250835115610f3b5782546000190160208501511015610ea457600160a060020a0386166000908152602081905260409020835460039091018054909160001901908110610de157fe5b9060005260206000209060020201604080519081016040528154600160a060020a031681526001909101546020808301919091529092508290849086015181548110610e2957fe5b906000526020600020906002020160008201518154600160a060020a031916600160a060020a03919091161781556020820151600190910155506020840151600160a060020a0387166000908152602081905260408120600401908451600160a060020a031681526020810191909152604001600020600101555b8254610eb4846000198301613761565b50600160a060020a03808716600090815260208181526040808320938b16835260049093018152918120805460ff19168155600101557f6ceab662049113d466f7e28b69edbec7cf641bc175522623536b09785887982a908890860151604051600160a060020a03909216825260208201526040908101905180910390a160019450610f40565b600094505b5050505092915050565b600160205260009081526040902054600160a060020a031681565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614610fa957600080fd5b7f67656e65726963416374696f6e00000000000000000000000000000000000000836000610fd5613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611062576000848152602090206002830201604080519081016040528154600160a060020a031681526001918201546020808301919091529083529201910161101a565b505050509050600091505b805182101561113c5780828151811061108257fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106110a857fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561110b57600080fd5b6102c65a03f1151561111c57600080fd5b50505060405180519050151561113157600080fd5b60019091019061106d565b33600160a060020a03167f8518530cc6bc186721ab2fc226031ca054c8484893d8b0c7faab65a58aac238d8960405160208082528190810183818151815260200191508051906020019060200280838360005b838110156111a757808201518382015260200161118f565b505050509050019250505060405180910390a286600160a060020a0316636ce15a54338a6000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561123e578082015183820152602001611226565b505050509050019350505050602060405180830381600087803b151561126357600080fd5b6102c65a03f1151561127457600080fd5b5050506040518051965050600091505b80518210156113535780828151811061129957fe5b9060200190602002015151600160a060020a0316638043154d338385815181106112bf57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561132257600080fd5b6102c65a03f1151561133357600080fd5b50505060405180519050151561134857600080fd5b600190910190611284565b505050505092915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a9081028116146113a257600080fd5b7f73656e64457468657200000000000000000000000000000000000000000000008360006113ce613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561145b576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611413565b505050509050600091505b80518210156115355780828151811061147b57fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106114a157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561150457600080fd5b6102c65a03f1151561151557600080fd5b50505060405180519050151561152a57600080fd5b600190910190611466565b87600160a060020a031633600160a060020a03167fda35e091786fbaaace32084910404a0e3a14f22a7645a4c3d0fec2c6731e3c348b60405190815260200160405180910390a386600160a060020a031663cb16d4a28a8a60006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b15156115da57600080fd5b6102c65a03f115156115eb57600080fd5b5050506040518051965050600091505b80518210156116ca5780828151811061161057fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061163657fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561169957600080fd5b6102c65a03f115156116aa57600080fd5b5050506040518051905015156116bf57600080fd5b6001909101906115fb565b50505050509392505050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461171a57600080fd5b7f6d696e74546f6b656e7300000000000000000000000000000000000000000000836000611746613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b828210156117d3576000848152602090206002830201604080519081016040528154600160a060020a031681526001918201546020808301919091529083529201910161178b565b505050509050600091505b80518210156118ad578082815181106117f357fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061181957fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561187c57600080fd5b6102c65a03f1151561188d57600080fd5b5050506040518051905015156118a257600080fd5b6001909101906117de565b86600160a060020a031688600160a060020a031633600160a060020a03167f5f31335b49d4d41584177ece651b9e2bb48565b82a1dfbf1b75eec6343215e4c8c60405190815260200160405180910390a4600160a060020a0380881660009081526020819052604080822054909216916340c10f19918b918d9190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561197057600080fd5b6102c65a03f1151561198157600080fd5b5050506040518051965050600091505b80518210156116ca578082815181106119a657fe5b9060200190602002015151600160a060020a0316638043154d338385815181106119cc57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611a2f57600080fd5b6102c65a03f11515611a4057600080fd5b505050604051805190501515611a5557600080fd5b600190910190611991565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614611aa457600080fd5b7f65787465726e616c546f6b656e496e637265617365417070726f76616c000000836000611ad0613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611b5d576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611b15565b505050509050600091505b8051821015611c3757808281518110611b7d57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110611ba357fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611c0657600080fd5b6102c65a03f11515611c1757600080fd5b505050604051805190501515611c2c57600080fd5b600190910190611b68565b89600160a060020a031633600160a060020a03167f2cee0640e7c161518a78fa901d8c0e4b2f51d42612532184a4f017a45b01ba288b8b604051600160a060020a03909216825260208201526040908101905180910390a386600160a060020a0316638cf1355c8b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611cf957600080fd5b6102c65a03f11515611d0a57600080fd5b5050506040518051965050600091505b8051821015611de957808281518110611d2f57fe5b9060200190602002015151600160a060020a0316638043154d33838581518110611d5557fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611db857600080fd5b6102c65a03f11515611dc957600080fd5b505050604051805190501515611dde57600080fd5b600190910190611d1a565b5050505050949350505050565b6000611e02338361226a565b1515611e1057506000611e83565b600160a060020a038083166000818152602081815260408083203390951680845260029095019091528082209182556001909101805463ffffffff1916905590919081907f6c6acccb2a8bdecd133efe43bc929b25f75255a88da20af641c9ba4acc0e0e5b905160405180910390a45060015b919050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614611ecc57600080fd5b7f6d696e7452657075746174696f6e000000000000000000000000000000000000836000611ef8613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611f85576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611f3d565b505050509050600091505b805182101561205f57808281518110611fa557fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110611fcb57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561202e57600080fd5b6102c65a03f1151561203f57600080fd5b50505060405180519050151561205457600080fd5b600190910190611f90565b86600160a060020a031688600160a060020a031633600160a060020a03167f14c6daf0620e7ece14b4140bbfd783064e337fd3ab814d9dd32c80fc4673fc158c60405190815260200160405180910390a4600160a060020a03808816600090815260208190526040808220600101549092169163fd9bf3aa918b918d9190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561212557600080fd5b6102c65a03f1151561213657600080fd5b5050506040518051965050600091505b80518210156116ca5780828151811061215b57fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061218157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156121e457600080fd5b6102c65a03f115156121f557600080fd5b50505060405180519050151561220a57600080fd5b600190910190612146565b600160a060020a031660009081526020819052604090206003015490565b600160a060020a03808216600090815260208181526040808320938616835260029093019052206001015460e060020a0292915050565b600160a060020a03808216600090815260208181526040808320938616835260029093019052206001015460e060020a90810216151592915050565b600160a060020a03811660009081526020819052604090206005015460ff16156122cf57600080fd5b30600160a060020a031681600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561231f57600080fd5b6102c65a03f1151561233057600080fd5b50505060405180519050600160a060020a031614151561234f57600080fd5b600160a060020a038116600081815260208190526040808220600501805460ff1916600117905563e1758bd8919051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156123b057600080fd5b6102c65a03f115156123c157600080fd5b5050506040518051600160a060020a038381166000818152602081905260408082208054600160a060020a031916959094169490941790925592506389ae1c909151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561243557600080fd5b6102c65a03f1151561244657600080fd5b5050506040518051600160a060020a03838116600090815260208190526040908190206001018054600160a060020a0319169390921692909217905590508051908101604090815260008083527c0f00000000000000000000000000000000000000000000000000000000602080850191909152600160a060020a038086168352828252838320339091168352600201905220815181556020820151600191909101805463ffffffff191660e060020a90920491909117905550600160a060020a03818116903316807f521230fe5fa463e77907aa7d9653b8cf93661e82561e966af8aa0a99910554c160405160405180910390a450565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461258257600080fd5b7f65787465726e616c546f6b656e5472616e7366657200000000000000000000008360006125ae613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561263b576000848152602090206002830201604080519081016040528154600160a060020a03168152600191820154602080830191909152908352920191016125f3565b505050509050600091505b80518210156127155780828151811061265b57fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061268157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156126e457600080fd5b6102c65a03f115156126f557600080fd5b50505060405180519050151561270a57600080fd5b600190910190612646565b88600160a060020a03168a600160a060020a031633600160a060020a03167fd4c08afec48fd2cbe49032dc89d3b388b7a4e4f0563a1fdccd73339beb025aa18b60405190815260200160405180910390a486600160a060020a031663dab0efff8b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156127d057600080fd5b6102c65a03f115156127e157600080fd5b5050506040518051965050600091505b8051821015611de95780828151811061280657fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061282c57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561288f57600080fd5b6102c65a03f115156128a057600080fd5b5050506040518051905015156128b557600080fd5b6001909101906127f1565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461290457600080fd5b7f65787465726e616c546f6b656e4465637265617365417070726f76616c000000836000612930613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b828210156129bd576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101612975565b505050509050600091505b8051821015612a97578082815181106129dd57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110612a0357fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612a6657600080fd5b6102c65a03f11515612a7757600080fd5b505050604051805190501515612a8c57600080fd5b6001909101906129c8565b89600160a060020a031633600160a060020a03167f56fc1f50d44108d3b715d77eb371d388bf2998c65b4eb5cf0ccd6c055be46d498b8b604051600160a060020a03909216825260208201526040908101905180910390a386600160a060020a031663d29ab9c48b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515612b5957600080fd5b6102c65a03f11515612b6a57600080fd5b5050506040518051965050600091505b8051821015611de957808281518110612b8f57fe5b9060200190602002015151600160a060020a0316638043154d33838581518110612bb557fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612c1857600080fd5b6102c65a03f11515612c2957600080fd5b505050604051805190501515612c3e57600080fd5b600190910190612b7a565b600160a060020a0380821660009081526020818152604080832033909416835260029093019052908120600101548190839060e060020a027c040000000000000000000000000000000000000000000000000000000090811614612cac57600080fd5b600160a060020a03808516600090815260208181526040808320938a1683526004840190915290205490925060ff161515612da85760038201805460018101612cf58382613761565b9160005260206000209060020201600060408051908101604052600160a060020a038a1681526020810189905291905081518154600160a060020a031916600160a060020a0391909116178155602082015160019091015550604090508051908101604090815260018252600384015460001901602080840191909152600160a060020a038916600090815260048601909152208151815460ff1916901515178155602082015160019091015550612dec565b600160a060020a03861660009081526004830160205260409020600101546003830180548792908110612dd757fe5b60009182526020909120600160029092020101555b7f6f3ac186000a779fe66d0a5188f51993a6593d93c4ff052ec0453aa84f09dbcb8686604051600160a060020a03909216825260208201526040908101905180910390a150600195945050505050565b600160a060020a0380821660009081526020818152604080832033909416835260029390930190529081206001015481908190849060e060020a027c020000000000000000000000000000000000000000000000000000000090811614612ea257600080fd5b7f7265676973746572536368656d65000000000000000000000000000000000000856000612ece613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015612f5b576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101612f13565b505050509050600091505b805182101561303557808281518110612f7b57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110612fa157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561300457600080fd5b6102c65a03f1151561301557600080fd5b50505060405180519050151561302a57600080fd5b600190910190612f66565b6000808a600160a060020a0316600160a060020a0316815260200190815260200160002060020160008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900460e060020a0296506000808a600160a060020a0316600160a060020a03168152602001908152602001600020600201600033600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900460e060020a029550600060e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168619888c18600f60e060020a0216167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151561315657600080fd5b7c0f0000000000000000000000000000000000000000000000000000000086198816161561318357600080fd5b60408051908101604052808c600019168152602001600160e060020a028c177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152506000808b600160a060020a0316600160a060020a0316815260200190815260200160002060020160008e600160a060020a0316600160a060020a03168152602001908152602001600020600082015181556020820151600191909101805463ffffffff191660e060020a90920491909117905550600160a060020a03898116908d81169033167f521230fe5fa463e77907aa7d9653b8cf93661e82561e966af8aa0a99910554c160405160405180910390a460019750600091505b805182101561334e5780828151811061329457fe5b9060200190602002015151600160a060020a0316638043154d338385815181106132ba57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561331d57600080fd5b6102c65a03f1151561332e57600080fd5b50505060405180519050151561334357600080fd5b60019091019061327f565b50505050505050949350505050565b600160a060020a03808216600090815260208181526040808320938616835260049093019052205460ff1692915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a9081028116146133d257600080fd5b7f65787465726e616c546f6b656e5472616e7366657246726f6d000000000000008360006133fe613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561348b576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101613443565b505050509050600091505b8051821015613565578082815181106134ab57fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106134d157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561353457600080fd5b6102c65a03f1151561354557600080fd5b50505060405180519050151561355a57600080fd5b600190910190613496565b8a600160a060020a031633600160a060020a03167f283faba4b8dcfe263728666be500623fdf5ae89ac78e40952fe2493f918ed62c8c8c8c604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a386600160a060020a031663b756d5a28c8c8c8c60006040516020015260405160e060020a63ffffffff8716028152600160a060020a0394851660048201529284166024840152921660448201526064810191909152608401602060405180830381600087803b151561363a57600080fd5b6102c65a03f1151561364b57600080fd5b5050506040518051965050600091505b805182101561372a5780828151811061367057fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061369657fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156136f957600080fd5b6102c65a03f1151561370a57600080fd5b50505060405180519050151561371f57600080fd5b60019091019061365b565b505050505095945050505050565b60206040519081016040526000815290565b604080519081016040526000808252602082015290565b81548183558181151161378d5760020281600202836000526020600020918201910161378d9190613792565b505050565b6137c191905b808211156137bd578054600160a060020a031916815560006001820155600201613798565b5090565b905600a165627a7a72305820338c28dd64a7ca702e03ca2786d1c5b2c0ffa6731ee493a2b7b77eaaa982ed8b0029",
  "deployedBytecode": "0x6060604052600436106101035763ffffffff60e060020a600035041663039de01d81146101085780631c4d56081461014157806342427bf8146101785780634f52b5be1461019d5780634fe125a3146101c257806360351748146101fd578063634965da146102575780636407e4321461027f578063644b98ed146102a75780636c525b13146102d65780636cfc6582146102f5578063824f2f1f1461031d5780639b51e35a1461033c5780639be2faed14610393578063b9981364146103b8578063b9a04cdd146103d9578063c6ab78b914610408578063e4537a7414610437578063e869d45f14610460578063f76488be146104ac578063fb4856a2146104d1575b600080fd5b341561011357600080fd5b61012d600160a060020a0360043581169060243516610506565b604051901515815260200160405180910390f35b341561014c57600080fd5b610166600160a060020a036004358116906024351661090a565b60405190815260200160405180910390f35b341561018357600080fd5b61012d600160a060020a0360043581169060243516610938565b34156101a857600080fd5b61012d600160a060020a0360043581169060243516610cbb565b34156101cd57600080fd5b6101e1600160a060020a0360043516610f4a565b604051600160a060020a03909116815260200160405180910390f35b341561020857600080fd5b61012d600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965050509235600160a060020a03169250610f65915050565b341561026257600080fd5b61012d600435600160a060020a036024358116906044351661135e565b341561028a57600080fd5b61012d600435600160a060020a03602435811690604435166116d6565b34156102b257600080fd5b61012d600160a060020a036004358116906024358116906044359060643516611a60565b34156102e157600080fd5b61012d600160a060020a0360043516611df6565b341561030057600080fd5b61012d600435600160a060020a0360243581169060443516611e88565b341561032857600080fd5b610166600160a060020a0360043516612215565b341561034757600080fd5b610361600160a060020a0360043581169060243516612233565b6040517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909116815260200160405180910390f35b341561039e57600080fd5b61012d600160a060020a036004358116906024351661226a565b34156103c357600080fd5b6103d7600160a060020a03600435166122a6565b005b34156103e457600080fd5b61012d600160a060020a03600435811690602435811690604435906064351661253e565b341561041357600080fd5b61012d600160a060020a0360043581169060243581169060443590606435166128c0565b341561044257600080fd5b61012d600160a060020a036004358116906024359060443516612c49565b341561046b57600080fd5b61012d600160a060020a03600435811690602435907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19604435169060643516612e3c565b34156104b757600080fd5b61012d600160a060020a036004358116906024351661335d565b34156104dc57600080fd5b61012d600160a060020a03600435811690602435811690604435811690606435906084351661338e565b600160a060020a038082166000908152602081815260408083203390941683526002939093019052908120600101548190839060e060020a027c02000000000000000000000000000000000000000000000000000000009081161461056a57600080fd5b7f756e7265676973746572536368656d6500000000000000000000000000000000846000610596613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015610623576000848152602090206002830201604080519081016040528154600160a060020a03168152600191820154602080830191909152908352920191016105db565b505050509050600091505b80518210156106fd5780828151811061064357fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061066957fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156106cc57600080fd5b6102c65a03f115156106dd57600080fd5b5050506040518051905015156106f257600080fd5b60019091019061062e565b600160a060020a03808916600090815260208181526040808320938d16835260029093019052206001015460e060020a908102965086161515610743576000965061082a565b600160a060020a0388811660009081526020818152604080832033909416835260029093019052206001015460e060020a021986167c0f0000000000000000000000000000000000000000000000000000000016156107a157600080fd5b87600160a060020a031689600160a060020a031633600160a060020a03167f6c6acccb2a8bdecd133efe43bc929b25f75255a88da20af641c9ba4acc0e0e5b60405160405180910390a4600160a060020a03808916600090815260208181526040808320938d168352600290930190529081209081556001908101805463ffffffff1916905596505b600091505b80518210156108fe5780828151811061084457fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061086a57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156108cd57600080fd5b6102c65a03f115156108de57600080fd5b5050506040518051905015156108f357600080fd5b60019091019061082f565b50505050505092915050565b600160a060020a03808216600090815260208181526040808320938616835260029093019052205492915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a027c08000000000000000000000000000000000000000000000000000000009081161461099957600080fd5b600160a060020a0383811660009081526001602052604090205416156109be57600080fd5b600160a060020a03841615156109d357600080fd5b600160a060020a03838116600081815260016020526040908190208054600160a060020a031916938816939093179092559063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610a4957600080fd5b6102c65a03f11515610a5a57600080fd5b505050600160a060020a0383811660009081526020819052604080822054308416931691638da5cb5b9151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ab757600080fd5b6102c65a03f11515610ac857600080fd5b50505060405180519050600160a060020a03161415610b5a57600160a060020a0380841660009081526020819052604090819020549091169063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610b4557600080fd5b6102c65a03f11515610b5657600080fd5b5050505b600160a060020a0383811660009081526020819052604080822060010154308416931691638da5cb5b9151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610bb757600080fd5b6102c65a03f11515610bc857600080fd5b50505060405180519050600160a060020a03161415610c5d57600160a060020a0380841660009081526020819052604090819020600101549091169063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610c4857600080fd5b6102c65a03f11515610c5957600080fd5b5050505b7f8206909fdb23a8ad42188f753026bc9082758d85e20dce9bc8c4b34f2ec3db32308585604051600160a060020a03938416815291831660208301529091166040808301919091526060909101905180910390a15060019392505050565b6000610cc561374a565b6000610ccf61374a565b600160a060020a03808616600090815260208181526040808320339094168352600290930190522060010154859060e060020a027c040000000000000000000000000000000000000000000000000000000090811614610d2e57600080fd5b600160a060020a03808716600090815260208181526040808320938b168352600490930190528190209080519081016040908152825460ff1615158252600190920154602080830191909152600160a060020a038916600090815290819052919091209094506003019250835115610f3b5782546000190160208501511015610ea457600160a060020a0386166000908152602081905260409020835460039091018054909160001901908110610de157fe5b9060005260206000209060020201604080519081016040528154600160a060020a031681526001909101546020808301919091529092508290849086015181548110610e2957fe5b906000526020600020906002020160008201518154600160a060020a031916600160a060020a03919091161781556020820151600190910155506020840151600160a060020a0387166000908152602081905260408120600401908451600160a060020a031681526020810191909152604001600020600101555b8254610eb4846000198301613761565b50600160a060020a03808716600090815260208181526040808320938b16835260049093018152918120805460ff19168155600101557f6ceab662049113d466f7e28b69edbec7cf641bc175522623536b09785887982a908890860151604051600160a060020a03909216825260208201526040908101905180910390a160019450610f40565b600094505b5050505092915050565b600160205260009081526040902054600160a060020a031681565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614610fa957600080fd5b7f67656e65726963416374696f6e00000000000000000000000000000000000000836000610fd5613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611062576000848152602090206002830201604080519081016040528154600160a060020a031681526001918201546020808301919091529083529201910161101a565b505050509050600091505b805182101561113c5780828151811061108257fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106110a857fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561110b57600080fd5b6102c65a03f1151561111c57600080fd5b50505060405180519050151561113157600080fd5b60019091019061106d565b33600160a060020a03167f8518530cc6bc186721ab2fc226031ca054c8484893d8b0c7faab65a58aac238d8960405160208082528190810183818151815260200191508051906020019060200280838360005b838110156111a757808201518382015260200161118f565b505050509050019250505060405180910390a286600160a060020a0316636ce15a54338a6000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561123e578082015183820152602001611226565b505050509050019350505050602060405180830381600087803b151561126357600080fd5b6102c65a03f1151561127457600080fd5b5050506040518051965050600091505b80518210156113535780828151811061129957fe5b9060200190602002015151600160a060020a0316638043154d338385815181106112bf57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561132257600080fd5b6102c65a03f1151561133357600080fd5b50505060405180519050151561134857600080fd5b600190910190611284565b505050505092915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a9081028116146113a257600080fd5b7f73656e64457468657200000000000000000000000000000000000000000000008360006113ce613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561145b576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611413565b505050509050600091505b80518210156115355780828151811061147b57fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106114a157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561150457600080fd5b6102c65a03f1151561151557600080fd5b50505060405180519050151561152a57600080fd5b600190910190611466565b87600160a060020a031633600160a060020a03167fda35e091786fbaaace32084910404a0e3a14f22a7645a4c3d0fec2c6731e3c348b60405190815260200160405180910390a386600160a060020a031663cb16d4a28a8a60006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b15156115da57600080fd5b6102c65a03f115156115eb57600080fd5b5050506040518051965050600091505b80518210156116ca5780828151811061161057fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061163657fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561169957600080fd5b6102c65a03f115156116aa57600080fd5b5050506040518051905015156116bf57600080fd5b6001909101906115fb565b50505050509392505050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461171a57600080fd5b7f6d696e74546f6b656e7300000000000000000000000000000000000000000000836000611746613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b828210156117d3576000848152602090206002830201604080519081016040528154600160a060020a031681526001918201546020808301919091529083529201910161178b565b505050509050600091505b80518210156118ad578082815181106117f357fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061181957fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561187c57600080fd5b6102c65a03f1151561188d57600080fd5b5050506040518051905015156118a257600080fd5b6001909101906117de565b86600160a060020a031688600160a060020a031633600160a060020a03167f5f31335b49d4d41584177ece651b9e2bb48565b82a1dfbf1b75eec6343215e4c8c60405190815260200160405180910390a4600160a060020a0380881660009081526020819052604080822054909216916340c10f19918b918d9190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561197057600080fd5b6102c65a03f1151561198157600080fd5b5050506040518051965050600091505b80518210156116ca578082815181106119a657fe5b9060200190602002015151600160a060020a0316638043154d338385815181106119cc57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611a2f57600080fd5b6102c65a03f11515611a4057600080fd5b505050604051805190501515611a5557600080fd5b600190910190611991565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614611aa457600080fd5b7f65787465726e616c546f6b656e496e637265617365417070726f76616c000000836000611ad0613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611b5d576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611b15565b505050509050600091505b8051821015611c3757808281518110611b7d57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110611ba357fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611c0657600080fd5b6102c65a03f11515611c1757600080fd5b505050604051805190501515611c2c57600080fd5b600190910190611b68565b89600160a060020a031633600160a060020a03167f2cee0640e7c161518a78fa901d8c0e4b2f51d42612532184a4f017a45b01ba288b8b604051600160a060020a03909216825260208201526040908101905180910390a386600160a060020a0316638cf1355c8b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611cf957600080fd5b6102c65a03f11515611d0a57600080fd5b5050506040518051965050600091505b8051821015611de957808281518110611d2f57fe5b9060200190602002015151600160a060020a0316638043154d33838581518110611d5557fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611db857600080fd5b6102c65a03f11515611dc957600080fd5b505050604051805190501515611dde57600080fd5b600190910190611d1a565b5050505050949350505050565b6000611e02338361226a565b1515611e1057506000611e83565b600160a060020a038083166000818152602081815260408083203390951680845260029095019091528082209182556001909101805463ffffffff1916905590919081907f6c6acccb2a8bdecd133efe43bc929b25f75255a88da20af641c9ba4acc0e0e5b905160405180910390a45060015b919050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614611ecc57600080fd5b7f6d696e7452657075746174696f6e000000000000000000000000000000000000836000611ef8613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611f85576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611f3d565b505050509050600091505b805182101561205f57808281518110611fa557fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110611fcb57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561202e57600080fd5b6102c65a03f1151561203f57600080fd5b50505060405180519050151561205457600080fd5b600190910190611f90565b86600160a060020a031688600160a060020a031633600160a060020a03167f14c6daf0620e7ece14b4140bbfd783064e337fd3ab814d9dd32c80fc4673fc158c60405190815260200160405180910390a4600160a060020a03808816600090815260208190526040808220600101549092169163fd9bf3aa918b918d9190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561212557600080fd5b6102c65a03f1151561213657600080fd5b5050506040518051965050600091505b80518210156116ca5780828151811061215b57fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061218157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156121e457600080fd5b6102c65a03f115156121f557600080fd5b50505060405180519050151561220a57600080fd5b600190910190612146565b600160a060020a031660009081526020819052604090206003015490565b600160a060020a03808216600090815260208181526040808320938616835260029093019052206001015460e060020a0292915050565b600160a060020a03808216600090815260208181526040808320938616835260029093019052206001015460e060020a90810216151592915050565b600160a060020a03811660009081526020819052604090206005015460ff16156122cf57600080fd5b30600160a060020a031681600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561231f57600080fd5b6102c65a03f1151561233057600080fd5b50505060405180519050600160a060020a031614151561234f57600080fd5b600160a060020a038116600081815260208190526040808220600501805460ff1916600117905563e1758bd8919051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156123b057600080fd5b6102c65a03f115156123c157600080fd5b5050506040518051600160a060020a038381166000818152602081905260408082208054600160a060020a031916959094169490941790925592506389ae1c909151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561243557600080fd5b6102c65a03f1151561244657600080fd5b5050506040518051600160a060020a03838116600090815260208190526040908190206001018054600160a060020a0319169390921692909217905590508051908101604090815260008083527c0f00000000000000000000000000000000000000000000000000000000602080850191909152600160a060020a038086168352828252838320339091168352600201905220815181556020820151600191909101805463ffffffff191660e060020a90920491909117905550600160a060020a03818116903316807f521230fe5fa463e77907aa7d9653b8cf93661e82561e966af8aa0a99910554c160405160405180910390a450565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461258257600080fd5b7f65787465726e616c546f6b656e5472616e7366657200000000000000000000008360006125ae613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561263b576000848152602090206002830201604080519081016040528154600160a060020a03168152600191820154602080830191909152908352920191016125f3565b505050509050600091505b80518210156127155780828151811061265b57fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061268157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156126e457600080fd5b6102c65a03f115156126f557600080fd5b50505060405180519050151561270a57600080fd5b600190910190612646565b88600160a060020a03168a600160a060020a031633600160a060020a03167fd4c08afec48fd2cbe49032dc89d3b388b7a4e4f0563a1fdccd73339beb025aa18b60405190815260200160405180910390a486600160a060020a031663dab0efff8b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156127d057600080fd5b6102c65a03f115156127e157600080fd5b5050506040518051965050600091505b8051821015611de95780828151811061280657fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061282c57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561288f57600080fd5b6102c65a03f115156128a057600080fd5b5050506040518051905015156128b557600080fd5b6001909101906127f1565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461290457600080fd5b7f65787465726e616c546f6b656e4465637265617365417070726f76616c000000836000612930613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b828210156129bd576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101612975565b505050509050600091505b8051821015612a97578082815181106129dd57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110612a0357fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612a6657600080fd5b6102c65a03f11515612a7757600080fd5b505050604051805190501515612a8c57600080fd5b6001909101906129c8565b89600160a060020a031633600160a060020a03167f56fc1f50d44108d3b715d77eb371d388bf2998c65b4eb5cf0ccd6c055be46d498b8b604051600160a060020a03909216825260208201526040908101905180910390a386600160a060020a031663d29ab9c48b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515612b5957600080fd5b6102c65a03f11515612b6a57600080fd5b5050506040518051965050600091505b8051821015611de957808281518110612b8f57fe5b9060200190602002015151600160a060020a0316638043154d33838581518110612bb557fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612c1857600080fd5b6102c65a03f11515612c2957600080fd5b505050604051805190501515612c3e57600080fd5b600190910190612b7a565b600160a060020a0380821660009081526020818152604080832033909416835260029093019052908120600101548190839060e060020a027c040000000000000000000000000000000000000000000000000000000090811614612cac57600080fd5b600160a060020a03808516600090815260208181526040808320938a1683526004840190915290205490925060ff161515612da85760038201805460018101612cf58382613761565b9160005260206000209060020201600060408051908101604052600160a060020a038a1681526020810189905291905081518154600160a060020a031916600160a060020a0391909116178155602082015160019091015550604090508051908101604090815260018252600384015460001901602080840191909152600160a060020a038916600090815260048601909152208151815460ff1916901515178155602082015160019091015550612dec565b600160a060020a03861660009081526004830160205260409020600101546003830180548792908110612dd757fe5b60009182526020909120600160029092020101555b7f6f3ac186000a779fe66d0a5188f51993a6593d93c4ff052ec0453aa84f09dbcb8686604051600160a060020a03909216825260208201526040908101905180910390a150600195945050505050565b600160a060020a0380821660009081526020818152604080832033909416835260029390930190529081206001015481908190849060e060020a027c020000000000000000000000000000000000000000000000000000000090811614612ea257600080fd5b7f7265676973746572536368656d65000000000000000000000000000000000000856000612ece613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015612f5b576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101612f13565b505050509050600091505b805182101561303557808281518110612f7b57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110612fa157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561300457600080fd5b6102c65a03f1151561301557600080fd5b50505060405180519050151561302a57600080fd5b600190910190612f66565b6000808a600160a060020a0316600160a060020a0316815260200190815260200160002060020160008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900460e060020a0296506000808a600160a060020a0316600160a060020a03168152602001908152602001600020600201600033600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900460e060020a029550600060e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168619888c18600f60e060020a0216167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151561315657600080fd5b7c0f0000000000000000000000000000000000000000000000000000000086198816161561318357600080fd5b60408051908101604052808c600019168152602001600160e060020a028c177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152506000808b600160a060020a0316600160a060020a0316815260200190815260200160002060020160008e600160a060020a0316600160a060020a03168152602001908152602001600020600082015181556020820151600191909101805463ffffffff191660e060020a90920491909117905550600160a060020a03898116908d81169033167f521230fe5fa463e77907aa7d9653b8cf93661e82561e966af8aa0a99910554c160405160405180910390a460019750600091505b805182101561334e5780828151811061329457fe5b9060200190602002015151600160a060020a0316638043154d338385815181106132ba57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561331d57600080fd5b6102c65a03f1151561332e57600080fd5b50505060405180519050151561334357600080fd5b60019091019061327f565b50505050505050949350505050565b600160a060020a03808216600090815260208181526040808320938616835260049093019052205460ff1692915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a9081028116146133d257600080fd5b7f65787465726e616c546f6b656e5472616e7366657246726f6d000000000000008360006133fe613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561348b576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101613443565b505050509050600091505b8051821015613565578082815181106134ab57fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106134d157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561353457600080fd5b6102c65a03f1151561354557600080fd5b50505060405180519050151561355a57600080fd5b600190910190613496565b8a600160a060020a031633600160a060020a03167f283faba4b8dcfe263728666be500623fdf5ae89ac78e40952fe2493f918ed62c8c8c8c604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a386600160a060020a031663b756d5a28c8c8c8c60006040516020015260405160e060020a63ffffffff8716028152600160a060020a0394851660048201529284166024840152921660448201526064810191909152608401602060405180830381600087803b151561363a57600080fd5b6102c65a03f1151561364b57600080fd5b5050506040518051965050600091505b805182101561372a5780828151811061367057fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061369657fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156136f957600080fd5b6102c65a03f1151561370a57600080fd5b50505060405180519050151561371f57600080fd5b60019091019061365b565b505050505095945050505050565b60206040519081016040526000815290565b604080519081016040526000808252602082015290565b81548183558181151161378d5760020281600202836000526020600020918201910161378d9190613792565b505050565b6137c191905b808211156137bd578054600160a060020a031916815560006001820155600201613798565b5090565b905600a165627a7a72305820338c28dd64a7ca702e03ca2786d1c5b2c0ffa6731ee493a2b7b77eaaa982ed8b0029",
  "sourceMap": "504:18401:11:-;;;3541:31;;;;;;;;504:18401;;;;;;",
  "deployedSourceMap": "504:18401:11:-;;;;;;;;;-1:-1:-1;;;504:18401:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8494:742;;;;;;;;;;-1:-1:-1;;;;;8494:742:11;;;;;;;;;;;;;;;;;;;;;;;;;;;9905:169;;;;;;;;;;-1:-1:-1;;;;;9905:169:11;;;;;;;;;;;;;;;;;;;;;;;;;13382:822;;;;;;;;;;-1:-1:-1;;;;;13382:822:11;;;;;;;;;;11961:1145;;;;;;;;;;-1:-1:-1;;;;;11961:1145:11;;;;;;;;;;2047:47;;;;;;;;;;-1:-1:-1;;;;;2047:47:11;;;;;;;;-1:-1:-1;;;;;2047:47:11;;;;;;;;;;;;;;14590:298;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14590:298:11;;-1:-1:-1;;;14590:298:11;;-1:-1:-1;;;;;14590:298:11;;-1:-1:-1;14590:298:11;;-1:-1:-1;;14590:298:11;15127:303;;;;;;;;;;;;-1:-1:-1;;;;;15127:303:11;;;;;;;;;;6451:341;;;;;;;;;;;;-1:-1:-1;;;;;6451:341:11;;;;;;;;;;17553:454;;;;;;;;;;-1:-1:-1;;;;;17553:454:11;;;;;;;;;;;;;;;;;;9395:306;;;;;;;;;;-1:-1:-1;;;;;9395:306:11;;;;;5858:357;;;;;;;;;;;;-1:-1:-1;;;;;5858:357:11;;;;;;;;;;10281:150;;;;;;;;;;-1:-1:-1;;;;;10281:150:11;;;;;10080:170;;;;;;;;;;-1:-1:-1;;;;;10080:170:11;;;;;;;;;;;;;-1:-1:-1;;10080:170:11;;;;;;;;;;;;;;9707:192;;;;;;;;;;-1:-1:-1;;;;;9707:192:11;;;;;;;;;;3715:576;;;;;;;;;;-1:-1:-1;;;;;3715:576:11;;;;;;;15760:395;;;;;;;;;;-1:-1:-1;;;;;15760:395:11;;;;;;;;;;;;;;;;;;18434:469;;;;;;;;;;-1:-1:-1;;;;;18434:469:11;;;;;;;;;;;;;;;;;;10944:781;;;;;;;;;;-1:-1:-1;;;;;10944:781:11;;;;;;;;;;;;;7124:1174;;;;;;;;;;-1:-1:-1;;;;;7124:1174:11;;;;;;;;-1:-1:-1;;7124:1174:11;;;;;;;;;10437:211;;;;;;;;;;-1:-1:-1;;;;;10437:211:11;;;;;;;;;;16691:440;;;;;;;;;;-1:-1:-1;;;;;16691:440:11;;;;;;;;;;;;;;;;;;;;;;;8494:742;-1:-1:-1;;;;;4544:21:11;;;8668:4;4544:21;;;;;;;;;;;4574:10;4544:41;;;;;4618:1;4544:29;;;;:41;;;;;:53;;;8668:4;;8591:7;;-1:-1:-1;;;4544:53:11;4611:9;4544:63;;;:76;4536:85;;;;;;4983:630;8647:7;5056:10;5076:43;;:::i;:::-;5122:13;:22;5136:7;-1:-1:-1;;;;;5122:22:11;-1:-1:-1;;;;;5122:22:11;;;;;;;;;;;;:40;;5076:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5076:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5185:1;5177:9;;5172:207;5193:17;:24;5187:5;:30;5172:207;;;5276:17;5294:5;5276:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5249:67:11;;5317:10;5329:17;5347:5;5329:24;;;;;;;;;;;;;;;;:31;;;5362:4;5249:118;;;;;;;;-1:-1:-1;;;5249:118:11;;;;;;-1:-1:-1;;;;;5249:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5241:127;;;;;;;;5218:7;;;;;5172:207;;;-1:-1:-1;;;;;8714:22:11;;;:13;:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;:51;;;-1:-1:-1;;;8714:51:11;;;;-1:-1:-1;8817:26:11;;:39;8813:84;;;8879:5;8872:12;;;;8813:84;-1:-1:-1;;;;;9007:22:11;;;9074:1;9007:22;;;;;;;;;;;9038:10;9007:42;;;;;:30;;;;:42;;;:54;;;-1:-1:-1;;;9007:54:11;9006:55;8988:74;;8976:10;:87;:100;8968:109;;;;;;9144:7;-1:-1:-1;;;;;9107:45:11;9136:7;-1:-1:-1;;;;;9107:45:11;9124:10;-1:-1:-1;;;;;9107:45:11;;;;;;;;;;;-1:-1:-1;;;;;9169:22:11;;;:13;:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;;;9162:46;;;;;;;;;-1:-1:-1;;9162:46:11;;;;-1:-1:-1;5388:1:11;5412;5404:9;;5399:208;5420:17;:24;5414:5;:30;5399:208;;;5503:17;5521:5;5503:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5476:68:11;;5545:10;5557:17;5575:5;5557:24;;;;;;;;;;;;;;;;:31;;;5590:4;5476:119;;;;;;;;-1:-1:-1;;;5476:119:11;;;;;;-1:-1:-1;;;;;5476:119:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5468:128;;;;;;;;5445:7;;;;;5399:208;;;4631:1;;;;8494:742;;;;;;:::o;9905:169::-;-1:-1:-1;;;;;10017:22:11;;;9991:7;10017:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;:50;9905:169;;;;:::o;13382:822::-;-1:-1:-1;;;;;4881:22:11;;;13497:4;4881:22;;;;;;;;;;;4912:10;4881:42;;;;;:30;;;;:42;;;;;:54;;;13480:7;;-1:-1:-1;;;4881:54:11;4949:9;4881:64;;;:77;4873:86;;;;;;-1:-1:-1;;;;;13525:23:11;;;13560:1;13525:23;;;:14;:23;;;;;;;:37;13517:46;;;;;;-1:-1:-1;;;;;13636:28:11;;;;13628:37;;;;;;-1:-1:-1;;;;;13675:23:11;;;;;;;:14;:23;;;;;;;:40;;-1:-1:-1;;;;;;13675:40:11;;;;;;;;;;;:23;13725:35;;13675:40;;13725:51;-1:-1:-1;;;13725:51:11;;;;;;-1:-1:-1;;;;;13725:51:11;;;;;;;;;-1:-1:-1;13725:51:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;13790:22:11;;;:13;:22;;;;;;;;;;;:34;13844:4;13790:59;;;:34;;:40;;:42;;;;;;;;;-1:-1:-1;;;13790:42:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13790:59:11;;13786:158;;;-1:-1:-1;;;;;13865:22:11;;;:13;:22;;;;;;;;;;;;:34;;;;;:52;;13918:14;;13865:68;-1:-1:-1;;;13865:68:11;;;;;;-1:-1:-1;;;;;13865:68:11;;;;;;;;;-1:-1:-1;13865:68:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13786:158;-1:-1:-1;;;;;13957:22:11;;;:13;:22;;;;;;;;;;;:39;;;14016:4;13957:64;;;:39;;:45;;:47;;;;;;;;;-1:-1:-1;;;13957:47:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13957:64:11;;13953:168;;;-1:-1:-1;;;;;14037:22:11;;;:13;:22;;;;;;;;;;;;:39;;;;;;;:57;;14095:14;;14037:73;-1:-1:-1;;;14037:73:11;;;;;;-1:-1:-1;;;;;14037:73:11;;;;;;;;;-1:-1:-1;14037:73:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13953:168;14130:46;14148:4;14153:14;14168:7;14130:46;;-1:-1:-1;;;;;14130:46:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14193:4:11;;13382:822;-1:-1:-1;;;13382:822:11:o;11961:1145::-;12093:4;12113:56;;:::i;:::-;12249:44;12484:40;;:::i;:::-;-1:-1:-1;;;;;4716:21:11;;;:13;:21;;;;;;;;;;;4746:10;4716:41;;;;;:29;;;;:41;;;:53;;;12076:7;;-1:-1:-1;;;4716:53:11;4783:9;4716:63;;;:76;4708:85;;;;;;-1:-1:-1;;;;;12172:22:11;;;:13;:22;;;;;;;;;;;:67;;;;;:48;;;;:67;;;;;;:22;12113:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12296:22:11;;12113:126;12296:22;;;;;;;;;;;12113:126;;-1:-1:-1;12296:40:11;;;-1:-1:-1;12113:126:11;12352:33;12348:730;;;12438:24;;-1:-1:-1;;12438:26:11;12405:30;;;;:59;12401:428;;;-1:-1:-1;;;;;12527:22:11;;:13;:22;;;;;;;;;;12568:24;;12527:40;;;;:68;;:40;;-1:-1:-1;;12568:26:11;;12527:68;;;;;;;;;;;;;;;;12484:111;;;;;;;;;;-1:-1:-1;;;;;12484:111:11;;;;;;;;;;;;;;;;;;-1:-1:-1;12484:111:11;;12613:17;;12631:30;;;12613:49;;;;;;;;;;;;;;;;;;:68;;;;;;-1:-1:-1;;;;;;12613:68:11;-1:-1:-1;;;;;12613:68:11;;;;;;;;;;;;;;;;-1:-1:-1;12784:30:11;;;;-1:-1:-1;;;;;12699:22:11;;:13;:22;;;;;;;;;;:48;;;12748:16;:26;-1:-1:-1;;;;;12699:76:11;;;;;;;;;;;;-1:-1:-1;12699:76:11;:82;;:115;12401:428;12842:26;;;:17;-1:-1:-1;;12842:26:11;;;:::i;:::-;-1:-1:-1;;;;;;12889:22:11;;;:13;:22;;;;;;;;;;;:67;;;;;:48;;;;:67;;;;;12882:74;;-1:-1:-1;;12882:74:11;;;;;;12970:72;;12938:17;;13011:30;;;12970:72;;-1:-1:-1;;;;;12970:72:11;;;;;;;;;;;;;;;;;;;;13063:4;13056:11;;;;12348:730;13094:5;13087:12;;4803:1;11961:1145;;;;;;;;:::o;2047:47::-;;;;;;;;;;;;-1:-1:-1;;;;;2047:47:11;;:::o;14590:298::-;-1:-1:-1;;;;;4377:21:11;;;14758:4;4377:21;;;;;;;;;;;4407:10;4377:41;;;;;:29;;;;:41;;;;;4451:1;4377:53;;14684:7;;-1:-1:-1;;;4377:53:11;;;:63;;:76;4369:85;;;;;;4983:630;14737:7;5056:10;5076:43;;:::i;:::-;5122:13;:22;5136:7;-1:-1:-1;;;;;5122:22:11;-1:-1:-1;;;;;5122:22:11;;;;;;;;;;;;:40;;5076:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5076:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5185:1;5177:9;;5172:207;5193:17;:24;5187:5;:30;5172:207;;;5276:17;5294:5;5276:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5249:67:11;;5317:10;5329:17;5347:5;5329:24;;;;;;;;;;;;;;;;:31;;;5362:4;5249:118;;;;;;;;-1:-1:-1;;;5249:118:11;;;;;;-1:-1:-1;;;;;5249:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5241:127;;;;;;;;5218:7;;;;;5172:207;;;14792:10;-1:-1:-1;;;;;14778:34:11;;14804:7;14778: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;;;;;;;;;;;;;;;;;14837:7:11;-1:-1:-1;;;;;14829:31:11;;14861:10;14873:7;14829:52;;;;;;;;;;;-1:-1:-1;;;14829:52:11;;;;;;;-1:-1:-1;;;;;14829:52:11;-1:-1:-1;;;;;14829:52:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;5412:1:11;5404:9;;5399:208;5420:17;:24;5414:5;:30;5399:208;;;5503:17;5521:5;5503:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5476:68:11;;5545:10;5557:17;5575:5;5557:24;;;;;;;;;;;;;;;;:31;;;5590:4;5476:119;;;;;;;;-1:-1:-1;;;5476:119:11;;;;;;-1:-1:-1;;;;;5476:119:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5468:128;;;;;;;;5445:7;;;;;5399:208;;;4464:1;;;;14590:298;;;;;:::o;15127:303::-;-1:-1:-1;;;;;4377:21:11;;;15300:4;4377:21;;;;;;;;;;;4407:10;4377:41;;;;;:29;;;;:41;;;;;4451:1;4377:53;;15230:7;;-1:-1:-1;;;4377:53:11;;;:63;;:76;4369:85;;;;;;4983:630;15279:7;5056:10;5076:43;;:::i;:::-;5122:13;:22;5136:7;-1:-1:-1;;;;;5122:22:11;-1:-1:-1;;;;;5122:22:11;;;;;;;;;;;;:40;;5076:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5076:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5185:1;5177:9;;5172:207;5193:17;:24;5187:5;:30;5172:207;;;5276:17;5294:5;5276:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5249:67:11;;5317:10;5329:17;5347:5;5329:24;;;;;;;;;;;;;;;;:31;;;5362:4;5249:118;;;;;;;;-1:-1:-1;;;5249:118:11;;;;;;-1:-1:-1;;;;;5249:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5241:127;;;;;;;;5218:7;;;;;5172:207;;;15356:3;-1:-1:-1;;;;;15320:40:11;15330:10;-1:-1:-1;;;;;15320:40:11;;15342:12;15320:40;;;;;;;;;;;;;;15385:7;-1:-1:-1;;;;;15377:27:11;;15405:12;15419:3;15377:46;;;;;;;;-1:-1:-1;;;15377:46:11;;;;;;;;;;;;;-1:-1:-1;;;;;15377:46:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5412:1:11;5404:9;;5399:208;5420:17;:24;5414:5;:30;5399:208;;;5503:17;5521:5;5503:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5476:68:11;;5545:10;5557:17;5575:5;5557:24;;;;;;;;;;;;;;;;:31;;;5590:4;5476:119;;;;;;;;-1:-1:-1;;;5476:119:11;;;;;;-1:-1:-1;;;;;5476:119:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5468:128;;;;;;;;5445:7;;;;;5399:208;;;4464:1;;;;15127:303;;;;;;:::o;6451:341::-;-1:-1:-1;;;;;4377:21:11;;;6633:4;4377:21;;;;;;;;;;;4407:10;4377:41;;;;;:29;;;;:41;;;;;4451:1;4377:53;;6562:7;;-1:-1:-1;;;4377:53:11;;;:63;;:76;4369:85;;;;;;4983:630;6612:7;5056:10;5076:43;;:::i;:::-;5122:13;:22;5136:7;-1:-1:-1;;;;;5122:22:11;-1:-1:-1;;;;;5122:22:11;;;;;;;;;;;;:40;;5076:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5076:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5185:1;5177:9;;5172:207;5193:17;:24;5187:5;:30;5172:207;;;5276:17;5294:5;5276:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5249:67:11;;5317:10;5329:17;5347:5;5329:24;;;;;;;;;;;;;;;;:31;;;5362:4;5249:118;;;;;;;;-1:-1:-1;;;5249:118:11;;;;;;-1:-1:-1;;;;;5249:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5241:127;;;;;;;;5218:7;;;;;5172:207;;;6698:7;-1:-1:-1;;;;;6653:53:11;6676:12;-1:-1:-1;;;;;6653:53:11;6664:10;-1:-1:-1;;;;;6653:53:11;;6690:7;6653:53;;;;;;;;;;;;;;-1:-1:-1;;;;;6723:22:11;;;:13;:22;;;;;;;;;;;:34;;;;;:39;;6763:12;;6777:7;;6723:13;:62;;;;;;-1:-1:-1;;;6723:62:11;;;;;;-1:-1:-1;;;;;6723:62:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5412:1:11;5404:9;;5399:208;5420:17;:24;5414:5;:30;5399:208;;;5503:17;5521:5;5503:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5476:68:11;;5545:10;5557:17;5575:5;5557:24;;;;;;;;;;;;;;;;:31;;;5590:4;5476:119;;;;;;;;-1:-1:-1;;;5476:119:11;;;;;;-1:-1:-1;;;;;5476:119:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5468:128;;;;;;;;5445:7;;;;;5399:208;;17553:454;-1:-1:-1;;;;;4377:21:11;;;17800:4;4377:21;;;;;;;;;;;4407:10;4377:41;;;;;:29;;;;:41;;;;;4451:1;4377:53;;17710:7;;-1:-1:-1;;;4377:53:11;;;:63;;:76;4369:85;;;;;;4983:630;17779:7;5056:10;5076:43;;:::i;:::-;5122:13;:22;5136:7;-1:-1:-1;;;;;5122:22:11;-1:-1:-1;;;;;5122:22:11;;;;;;;;;;;;:40;;5076:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5076:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5185:1;5177:9;;5172:207;5193:17;:24;5187:5;:30;5172:207;;;5276:17;5294:5;5276:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5249:67:11;;5317:10;5329:17;5347:5;5329:24;;;;;;;;;;;;;;;;:31;;;5362:4;5249:118;;;;;;;;-1:-1:-1;;;5249:118:11;;;;;;-1:-1:-1;;;;;5249:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5241:127;;;;;;;;5218:7;;;;;5172:207;;;17861:14;-1:-1:-1;;;;;17820:77:11;17850:10;-1:-1:-1;;;;;17820:77:11;;17876:8;17885:11;17820:77;;-1:-1:-1;;;;;17820:77:11;;;;;;;;;;;;;;;;;;;;17922:7;-1:-1:-1;;;;;17914:47:11;;17962:14;17978:8;17988:11;17914:86;;;;;;;;-1:-1:-1;;;17914:86:11;;;;;;-1:-1:-1;;;;;17914:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5412:1:11;5404:9;;5399:208;5420:17;:24;5414:5;:30;5399:208;;;5503:17;5521:5;5503:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5476:68:11;;5545:10;5557:17;5575:5;5557:24;;;;;;;;;;;;;;;;:31;;;5590:4;5476:119;;;;;;;;-1:-1:-1;;;5476:119:11;;;;;;-1:-1:-1;;;;;5476:119:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5468:128;;;;;;;;5445:7;;;;;5399:208;;;4464:1;;;;17553:454;;;;;;;:::o;9395:306::-;9451:4;9471:38;9490:10;9501:7;9471:18;:38::i;:::-;:47;;9467:90;;-1:-1:-1;9541:5:11;9534:12;;9467:90;-1:-1:-1;;;;;9573:22:11;;;:13;:22;;;;;;;;;;;9604:10;9573:42;;;;;;:30;;;;:42;;;;;;9566:49;;;;;;;;;-1:-1:-1;;9566:49:11;;;9573:22;;:42;;;9625:48;;;;;;;;;;-1:-1:-1;9690:4:11;9395:306;;;;:::o;5858:357::-;-1:-1:-1;;;;;4377:21:11;;;6047:4;4377:21;;;;;;;;;;;4407:10;4377:41;;;;;:29;;;;:41;;;;;4451:1;4377:53;;5972:7;;-1:-1:-1;;;4377:53:11;;;:63;;:76;4369:85;;;;;;4983:630;6026:7;5056:10;5076:43;;:::i;:::-;5122:13;:22;5136:7;-1:-1:-1;;;;;5122:22:11;-1:-1:-1;;;;;5122:22:11;;;;;;;;;;;;:40;;5076:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5076:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5185:1;5177:9;;5172:207;5193:17;:24;5187:5;:30;5172:207;;;5276:17;5294:5;5276:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5249:67:11;;5317:10;5329:17;5347:5;5329:24;;;;;;;;;;;;;;;;:31;;;5362:4;5249:118;;;;;;;;-1:-1:-1;;;5249:118:11;;;;;;-1:-1:-1;;;;;5249:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5241:127;;;;;;;;5218:7;;;;;5172:207;;;6116:7;-1:-1:-1;;;;;6067:57:11;6094:12;-1:-1:-1;;;;;6067:57:11;6082:10;-1:-1:-1;;;;;6067:57:11;;6108:7;6067:57;;;;;;;;;;;;;;-1:-1:-1;;;;;6141:22:11;;;:13;:22;;;;;;;;;;;:39;;;;;;;:44;;6186:12;;6200:7;;6141:13;:67;;;;;;-1:-1:-1;;;6141:67:11;;;;;;-1:-1:-1;;;;;6141:67:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5412:1:11;5404:9;;5399:208;5420:17;:24;5414:5;:30;5399:208;;;5503:17;5521:5;5503:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5476:68:11;;5545:10;5557:17;5575:5;5557:24;;;;;;;;;;;;;;;;:31;;;5590:4;5476:119;;;;;;;;-1:-1:-1;;;5476:119:11;;;;;;-1:-1:-1;;;;;5476:119:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5468:128;;;;;;;;5445:7;;;;;5399:208;;10281:150;-1:-1:-1;;;;;10377:22:11;10354:4;10377:22;;;;;;;;;;:40;;:47;;10281:150::o;10080:170::-;-1:-1:-1;;;;;10192:22:11;;;10167:6;10192:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;:51;;;-1:-1:-1;;;10192:51:11;10080:170;;;;:::o;9707:192::-;-1:-1:-1;;;;;9817:22:11;;;9793:4;9817:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;9876:1;9817:51;;-1:-1:-1;;;9817:51:11;;;:61;:74;;9707:192;;;;:::o;3715:576::-;-1:-1:-1;;;;;3800:31:11;;:13;:31;;;;;;;;;;:37;;;;;3799:38;3791:47;;;;;;3883:4;-1:-1:-1;;;;;3856:32:11;:7;-1:-1:-1;;;;;3856:13:11;;:15;;;;;;;;;;;-1:-1:-1;;;3856:15:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3856:32:11;;3848:41;;;;;;;;-1:-1:-1;;;;;3899:31:11;;:13;:31;;;;;;;;;;;:37;;:44;;-1:-1:-1;;3899:44:11;3939:4;3899:44;;;3999:19;;3899:13;3999:21;;;;;;;;;-1:-1:-1;;;3999:21:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3953:31:11;;;:13;:31;;;;;;;;;;;:67;;-1:-1:-1;;;;;;3953:67:11;;;;;;;;;;;;:31;-1:-1:-1;4081:24:11;;:26;;;;;;;;;-1:-1:-1;;;4081:26:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4030:31:11;;;:13;:31;;;;;;;;;;;;:48;;:77;;-1:-1:-1;;;;;;4030:77:11;;;;;;;;;;;:31;-1:-1:-1;4030:31:11;4171:57;;;;;;;;4199:1;4171:57;;;4215:11;4171:57;;;;;;;;-1:-1:-1;;;;;4117:31:11;;;;;;;;;;;4157:10;4117:51;;;;;:39;;:51;;;4171:57;4117:111;;;;;;;;;;;;;;-1:-1:-1;;4117:111:11;-1:-1:-1;;;4117:111:11;;;;;;;;;-1:-1:-1;;;;;;4238:46:11;;;;4265:10;4238:46;;;;;;;;;;;;3715:576;:::o;15760:395::-;-1:-1:-1;;;;;4377:21:11;;;15981:4;4377:21;;;;;;;;;;;4407:10;4377:41;;;;;:29;;;;:41;;;;;4451:1;4377:53;;15899:7;;-1:-1:-1;;;4377:53:11;;;:63;;:76;4369:85;;;;;;4983:630;15960:7;5056:10;5076:43;;:::i;:::-;5122:13;:22;5136:7;-1:-1:-1;;;;;5122:22:11;-1:-1:-1;;;;;5122:22:11;;;;;;;;;;;;:40;;5076:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5076:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5185:1;5177:9;;5172:207;5193:17;:24;5187:5;:30;5172:207;;;5276:17;5294:5;5276:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5249:67:11;;5317:10;5329:17;5347:5;5329:24;;;;;;;;;;;;;;;;:31;;;5362:4;5249:118;;;;;;;;-1:-1:-1;;;5249:118:11;;;;;;-1:-1:-1;;;;;5249:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5241:127;;;;;;;;5218:7;;;;;5172:207;;;16051:3;-1:-1:-1;;;;;16001:62:11;16035:14;-1:-1:-1;;;;;16001:62:11;16023:10;-1:-1:-1;;;;;16001:62:11;;16056:6;16001:62;;;;;;;;;;;;;;16088:7;-1:-1:-1;;;;;16080:39:11;;16120:14;16136:3;16141:6;16080:68;;;;;;;;-1:-1:-1;;;16080:68:11;;;;;;-1:-1:-1;;;;;16080:68:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5412:1:11;5404:9;;5399:208;5420:17;:24;5414:5;:30;5399:208;;;5503:17;5521:5;5503:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5476:68:11;;5545:10;5557:17;5575:5;5557:24;;;;;;;;;;;;;;;;:31;;;5590:4;5476:119;;;;;;;;-1:-1:-1;;;5476:119:11;;;;;;-1:-1:-1;;;;;5476:119:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5468:128;;;;;;;;5445:7;;;;;5399:208;;18434:469;-1:-1:-1;;;;;4377:21:11;;;18686:4;4377:21;;;;;;;;;;;4407:10;4377:41;;;;;:29;;;;:41;;;;;4451:1;4377:53;;18596:7;;-1:-1:-1;;;4377:53:11;;;:63;;:76;4369:85;;;;;;4983:630;18665:7;5056:10;5076:43;;:::i;:::-;5122:13;:22;5136:7;-1:-1:-1;;;;;5122:22:11;-1:-1:-1;;;;;5122:22:11;;;;;;;;;;;;:40;;5076:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5076:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5185:1;5177:9;;5172:207;5193:17;:24;5187:5;:30;5172:207;;;5276:17;5294:5;5276:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5249:67:11;;5317:10;5329:17;5347:5;5329:24;;;;;;;;;;;;;;;;:31;;;5362:4;5249:118;;;;;;;;-1:-1:-1;;;5249:118:11;;;;;;-1:-1:-1;;;;;5249:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5241:127;;;;;;;;5218:7;;;;;5172:207;;;18747:14;-1:-1:-1;;;;;18706:82:11;18736:10;-1:-1:-1;;;;;18706:82:11;;18762:8;18771:16;18706:82;;-1:-1:-1;;;;;18706:82:11;;;;;;;;;;;;;;;;;;;;18813:7;-1:-1:-1;;;;;18805:47:11;;18853:14;18869:8;18879:16;18805:91;;;;;;;;-1:-1:-1;;;18805:91:11;;;;;;-1:-1:-1;;;;;18805:91:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5412:1:11;5404:9;;5399:208;5420:17;:24;5414:5;:30;5399:208;;;5503:17;5521:5;5503:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5476:68:11;;5545:10;5557:17;5575:5;5557:24;;;;;;;;;;;;;;;;:31;;;5590:4;5476:119;;;;;;;;-1:-1:-1;;;5476:119:11;;;;;;-1:-1:-1;;;;;5476:119:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5468:128;;;;;;;;5445:7;;;;;5399:208;;10944:781;-1:-1:-1;;;;;4716:21:11;;;11089:4;4716:21;;;;;;;;;;;4746:10;4716:41;;;;;:29;;;;:41;;;;;:53;;;11089:4;;11072:7;;-1:-1:-1;;;4716:53:11;4783:9;4716:63;;;:76;4708:85;;;;;;-1:-1:-1;;;;;11145:22:11;;;:13;:22;;;;;;;;;;;11182:57;;;;;:38;;;:57;;;;;:66;11145:22;;-1:-1:-1;11182:66:11;;11181:67;11177:464;;;11264:30;;;:80;;;;;;:30;:80;;:::i;:::-;;;;;;;;;;;;11300:43;;;;;;;;-1:-1:-1;;;;;11300:43:11;;;;;;;;;;;11264:80;-1:-1:-1;11300:43:11;11264:80;;;-1:-1:-1;;;;;;11264:80:11;-1:-1:-1;;;;;11264:80:11;;;;;;;;;;;;;;;;-1:-1:-1;11418:70:11;;-1:-1:-1;11418:70:11;;;;;;;;;11443:4;11418:70;;11448:30;;;:37;-1:-1:-1;;11448:39:11;11418:70;;;;;;;;-1:-1:-1;;;;;11358:57:11;;11418:70;11358:57;;;:38;;;:57;;;;11418:70;11358:130;;;-1:-1:-1;;11358:130:11;;;;;;;;;;;;;;;;-1:-1:-1;11177:464:11;;;-1:-1:-1;;;;;11549:57:11;;;;;;:38;;;:57;;;;;:63;;;11518:30;;;:95;;11623:7;;11549:63;11518:95;;;;;;;;;;;;;;:102;:95;;;;;:102;:112;11177:464;11650:47;11670:17;11689:7;11650:47;;-1:-1:-1;;;;;11650:47:11;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11714:4:11;;10944:781;-1:-1:-1;;;;;10944:781:11:o;7124:1174::-;-1:-1:-1;;;;;4544:21:11;;;7336:4;4544:21;;;;;;;;;;;4574:10;4544:41;;;;;4618:1;4544:29;;;;:41;;;;;:53;;;7336:4;;;;7261:7;;-1:-1:-1;;;4544:53:11;4611:9;4544:63;;;:76;4536:85;;;;;;4983:630;7315:7;5056:10;5076:43;;:::i;:::-;5122:13;:22;5136:7;-1:-1:-1;;;;;5122:22:11;-1:-1:-1;;;;;5122:22:11;;;;;;;;;;;;:40;;5076:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5076:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5185:1;5177:9;;5172:207;5193:17;:24;5187:5;:30;5172:207;;;5276:17;5294:5;5276:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5249:67:11;;5317:10;5329:17;5347:5;5329:24;;;;;;;;;;;;;;;;:31;;;5362:4;5249:118;;;;;;;;-1:-1:-1;;;5249:118:11;;;;;;-1:-1:-1;;;;;5249:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5241:127;;;;;;;;5218:7;;;;;5172:207;;;7382:13;:22;7396:7;-1:-1:-1;;;;;7382:22:11;-1:-1:-1;;;;;7382:22:11;;;;;;;;;;;;:30;;:39;7413:7;-1:-1:-1;;;;;7382:39:11;-1:-1:-1;;;;;7382:39:11;;;;;;;;;;;;:51;;;;;;;;;;-1:-1:-1;;;7382:51:11;7356:77;;7469:13;:22;7483:7;-1:-1:-1;;;;;7469:22:11;-1:-1:-1;;;;;7469:22:11;;;;;;;;;;;;:30;;:42;7500:10;-1:-1:-1;;;;;7469:42:11;-1:-1:-1;;;;;7469:42:11;;;;;;;;;;;;:54;;;;;;;;;;-1:-1:-1;;;7469:54:11;7443:80;;7894:1;-1:-1:-1;;;7887:9:11;7821:75;;;7866:16;7865:17;7846:16;7833:12;:29;7828:2;-1:-1:-1;;;7821:10:11;:42;:62;:75;;;;7813:84;;;;;;;;8000:10;8030:17;;8012:36;;8000:49;:62;7992:71;;;;;;8149:67;;;;;;;;;8168:11;8149:67;;;;;;;8212:1;-1:-1:-1;;;8205:9:11;8192:12;:22;8149:67;;;;;;8107:13;:22;8121:7;-1:-1:-1;;;;;8107:22:11;-1:-1:-1;;;;;8107:22:11;;;;;;;;;;;;:30;;:39;8138:7;-1:-1:-1;;;;;8107:39:11;-1:-1:-1;;;;;8107:39:11;;;;;;;;;;;;:109;;;;;;;;;;;;;;;;;-1:-1:-1;;8107:109:11;-1:-1:-1;;;8107:109:11;;;;;;;;;-1:-1:-1;;;;;;8226:44:11;;;;;;;;8241:10;8226:44;;;;;;;;;;;8287:4;8280:11;;5412:1;5404:9;;5399:208;5420:17;:24;5414:5;:30;5399:208;;;5503:17;5521:5;5503:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5476:68:11;;5545:10;5557:17;5575:5;5557:24;;;;;;;;;;;;;;;;:31;;;5590:4;5476:119;;;;;;;;-1:-1:-1;;;5476:119:11;;;;;;-1:-1:-1;;;;;5476:119:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5468:128;;;;;;;;5445:7;;;;;5399:208;;;4631:1;;;;7124:1174;;;;;;;;;:::o;10437:211::-;-1:-1:-1;;;;;10565:22:11;;;10542:4;10565:22;;;;;;;;;;;:67;;;;;:48;;;;:67;;;:76;;;10437:211;;;;:::o;16691:440::-;-1:-1:-1;;;;;4377:21:11;;;16935:4;4377:21;;;;;;;;;;;4407:10;4377:41;;;;;:29;;;;:41;;;;;4451:1;4377:53;;16849:7;;-1:-1:-1;;;4377:53:11;;;:63;;:76;4369:85;;;;;;4983:630;16914:7;5056:10;5076:43;;:::i;:::-;5122:13;:22;5136:7;-1:-1:-1;;;;;5122:22:11;-1:-1:-1;;;;;5122:22:11;;;;;;;;;;;;:40;;5076:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5076:86:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5185:1;5177:9;;5172:207;5193:17;:24;5187:5;:30;5172:207;;;5276:17;5294:5;5276:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5249:67:11;;5317:10;5329:17;5347:5;5329:24;;;;;;;;;;;;;;;;:31;;;5362:4;5249:118;;;;;;;;-1:-1:-1;;;5249:118:11;;;;;;-1:-1:-1;;;;;5249:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5241:127;;;;;;;;5218:7;;;;;5172:207;;;16993:14;-1:-1:-1;;;;;16955:73:11;16981:10;-1:-1:-1;;;;;16955:73:11;;17009:5;17016:3;17021:6;16955:73;;-1:-1:-1;;;;;16955:73:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17053:7;-1:-1:-1;;;;;17045:43:11;;17089:14;17105:5;17112:3;17117:6;17045:79;;;;;;;;-1:-1:-1;;;17045:79:11;;;;;;-1:-1:-1;;;;;17045:79:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5412:1:11;5404:9;;5399:208;5420:17;:24;5414:5;:30;5399:208;;;5503:17;5521:5;5503:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5476:68:11;;5545:10;5557:17;5575:5;5557:24;;;;;;;;;;;;;;;;:31;;;5590:4;5476:119;;;;;;;;-1:-1:-1;;;5476:119:11;;;;;;-1:-1:-1;;;;;5476:119:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5468:128;;;;;;;;5445:7;;;;;5399:208;;;4464:1;;;;16691:440;;;;;;;;:::o;504:18401::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;504:18401:11;;;;;;;;;;;;;;;;;;:::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 daoCreator.\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": "/Users/oren/daostack/daostack2/daostack/contracts/controller/UController.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/UController.sol",
      "exportedSymbols": {
        "UController": [
          6673
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 5354,
        "name": "PragmaDirective",
        "src": "0:24:11"
      },
      {
        "attributes": {
          "SourceUnit": 3874,
          "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/Avatar.sol",
          "file": "./Avatar.sol",
          "scope": 6674,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 5355,
        "name": "ImportDirective",
        "src": "26:22:11"
      },
      {
        "attributes": {
          "SourceUnit": 5353,
          "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/Reputation.sol",
          "file": "./Reputation.sol",
          "scope": 6674,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 5356,
        "name": "ImportDirective",
        "src": "49:26:11"
      },
      {
        "attributes": {
          "SourceUnit": 5208,
          "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/DAOToken.sol",
          "file": "./DAOToken.sol",
          "scope": 6674,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 5357,
        "name": "ImportDirective",
        "src": "76:24:11"
      },
      {
        "attributes": {
          "SourceUnit": 6699,
          "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/globalConstraints/GlobalConstraintInterface.sol",
          "file": "../globalConstraints/GlobalConstraintInterface.sol",
          "scope": 6674,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 5358,
        "name": "ImportDirective",
        "src": "101:60:11"
      },
      {
        "attributes": {
          "SourceUnit": 5173,
          "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/controller/ControllerInterface.sol",
          "file": "./ControllerInterface.sol",
          "scope": 6674,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 5359,
        "name": "ImportDirective",
        "src": "162:35:11"
      },
      {
        "attributes": {
          "contractDependencies": [
            5172
          ],
          "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": [
            6673,
            5172
          ],
          "name": "UController",
          "scope": 6674
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "ControllerInterface",
                  "referencedDeclaration": 5172,
                  "type": "contract ControllerInterface"
                },
                "id": 5360,
                "name": "UserDefinedTypeName",
                "src": "528:19:11"
              }
            ],
            "id": 5361,
            "name": "InheritanceSpecifier",
            "src": "528:19:11"
          },
          {
            "attributes": {
              "canonicalName": "UController.Scheme",
              "name": "Scheme",
              "scope": 6673,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "paramsHash",
                  "scope": 5366,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 5362,
                    "name": "ElementaryTypeName",
                    "src": "579:7:11"
                  }
                ],
                "id": 5363,
                "name": "VariableDeclaration",
                "src": "579:18:11"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "permissions",
                  "scope": 5366,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes4",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes4",
                      "type": "bytes4"
                    },
                    "id": 5364,
                    "name": "ElementaryTypeName",
                    "src": "648:6:11"
                  }
                ],
                "id": 5365,
                "name": "VariableDeclaration",
                "src": "648:19:11"
              }
            ],
            "id": 5366,
            "name": "StructDefinition",
            "src": "555:511:11"
          },
          {
            "attributes": {
              "canonicalName": "UController.GlobalConstraint",
              "name": "GlobalConstraint",
              "scope": 6673,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "gcAddress",
                  "scope": 5371,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 5367,
                    "name": "ElementaryTypeName",
                    "src": "1106:7:11"
                  }
                ],
                "id": 5368,
                "name": "VariableDeclaration",
                "src": "1106:17:11"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "params",
                  "scope": 5371,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 5369,
                    "name": "ElementaryTypeName",
                    "src": "1133:7:11"
                  }
                ],
                "id": 5370,
                "name": "VariableDeclaration",
                "src": "1133:14:11"
              }
            ],
            "id": 5371,
            "name": "StructDefinition",
            "src": "1072:82:11"
          },
          {
            "attributes": {
              "canonicalName": "UController.GlobalConstraintRegister",
              "name": "GlobalConstraintRegister",
              "scope": 6673,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "register",
                  "scope": 5376,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bool",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bool",
                      "type": "bool"
                    },
                    "id": 5372,
                    "name": "ElementaryTypeName",
                    "src": "1202:4:11"
                  }
                ],
                "id": 5373,
                "name": "VariableDeclaration",
                "src": "1202:13:11"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "index",
                  "scope": 5376,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 5374,
                    "name": "ElementaryTypeName",
                    "src": "1239:4:11"
                  }
                ],
                "id": 5375,
                "name": "VariableDeclaration",
                "src": "1239:10:11"
              }
            ],
            "id": 5376,
            "name": "StructDefinition",
            "src": "1160:128:11"
          },
          {
            "attributes": {
              "canonicalName": "UController.Organization",
              "name": "Organization",
              "scope": 6673,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "nativeToken",
                  "scope": 5394,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract DAOToken",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "DAOToken",
                      "referencedDeclaration": 5207,
                      "type": "contract DAOToken"
                    },
                    "id": 5377,
                    "name": "UserDefinedTypeName",
                    "src": "1324:8:11"
                  }
                ],
                "id": 5378,
                "name": "VariableDeclaration",
                "src": "1324:37:11"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "nativeReputation",
                  "scope": 5394,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract Reputation",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Reputation",
                      "referencedDeclaration": 5352,
                      "type": "contract Reputation"
                    },
                    "id": 5379,
                    "name": "UserDefinedTypeName",
                    "src": "1371:10:11"
                  }
                ],
                "id": 5380,
                "name": "VariableDeclaration",
                "src": "1371:42:11"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "schemes",
                  "scope": 5394,
                  "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": 5381,
                        "name": "ElementaryTypeName",
                        "src": "1431:7:11"
                      },
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Scheme",
                          "referencedDeclaration": 5366,
                          "type": "struct UController.Scheme storage pointer"
                        },
                        "id": 5382,
                        "name": "UserDefinedTypeName",
                        "src": "1440:6:11"
                      }
                    ],
                    "id": 5383,
                    "name": "Mapping",
                    "src": "1423:24:11"
                  }
                ],
                "id": 5384,
                "name": "VariableDeclaration",
                "src": "1423:33:11"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "globalConstraints",
                  "scope": 5394,
                  "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": 5371,
                          "type": "struct UController.GlobalConstraint storage pointer"
                        },
                        "id": 5385,
                        "name": "UserDefinedTypeName",
                        "src": "1567:16:11"
                      }
                    ],
                    "id": 5386,
                    "name": "ArrayTypeName",
                    "src": "1567:18:11"
                  }
                ],
                "id": 5387,
                "name": "VariableDeclaration",
                "src": "1567:36:11"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "globalConstraintsRegister",
                  "scope": 5394,
                  "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": 5388,
                        "name": "ElementaryTypeName",
                        "src": "1707:7:11"
                      },
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "GlobalConstraintRegister",
                          "referencedDeclaration": 5376,
                          "type": "struct UController.GlobalConstraintRegister storage pointer"
                        },
                        "id": 5389,
                        "name": "UserDefinedTypeName",
                        "src": "1716:24:11"
                      }
                    ],
                    "id": 5390,
                    "name": "Mapping",
                    "src": "1699:42:11"
                  }
                ],
                "id": 5391,
                "name": "VariableDeclaration",
                "src": "1699:68:11"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "exist",
                  "scope": 5394,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bool",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bool",
                      "type": "bool"
                    },
                    "id": 5392,
                    "name": "ElementaryTypeName",
                    "src": "1777:4:11"
                  }
                ],
                "id": 5393,
                "name": "VariableDeclaration",
                "src": "1777:10:11"
              }
            ],
            "id": 5394,
            "name": "StructDefinition",
            "src": "1294:500:11"
          },
          {
            "attributes": {
              "constant": false,
              "name": "organizations",
              "scope": 6673,
              "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": 5395,
                    "name": "ElementaryTypeName",
                    "src": "1876:7:11"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Organization",
                      "referencedDeclaration": 5394,
                      "type": "struct UController.Organization storage pointer"
                    },
                    "id": 5396,
                    "name": "UserDefinedTypeName",
                    "src": "1885:12:11"
                  }
                ],
                "id": 5397,
                "name": "Mapping",
                "src": "1868:30:11"
              }
            ],
            "id": 5398,
            "name": "VariableDeclaration",
            "src": "1868:44:11"
          },
          {
            "attributes": {
              "constant": false,
              "name": "newControllers",
              "scope": 6673,
              "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": 5399,
                    "name": "ElementaryTypeName",
                    "src": "2055:7:11"
                  },
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 5400,
                    "name": "ElementaryTypeName",
                    "src": "2064:7:11"
                  }
                ],
                "id": 5401,
                "name": "Mapping",
                "src": "2047:25:11"
              }
            ],
            "id": 5402,
            "name": "VariableDeclaration",
            "src": "2047:47:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "MintReputation"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 5412,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5403,
                        "name": "ElementaryTypeName",
                        "src": "2181:7:11"
                      }
                    ],
                    "id": 5404,
                    "name": "VariableDeclaration",
                    "src": "2181:23:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_beneficiary",
                      "scope": 5412,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5405,
                        "name": "ElementaryTypeName",
                        "src": "2206:7:11"
                      }
                    ],
                    "id": 5406,
                    "name": "VariableDeclaration",
                    "src": "2206:28:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_amount",
                      "scope": 5412,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 5407,
                        "name": "ElementaryTypeName",
                        "src": "2236:6:11"
                      }
                    ],
                    "id": 5408,
                    "name": "VariableDeclaration",
                    "src": "2236:14:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 5412,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5409,
                        "name": "ElementaryTypeName",
                        "src": "2251:7:11"
                      }
                    ],
                    "id": 5410,
                    "name": "VariableDeclaration",
                    "src": "2251:23:11"
                  }
                ],
                "id": 5411,
                "name": "ParameterList",
                "src": "2180:95:11"
              }
            ],
            "id": 5412,
            "name": "EventDefinition",
            "src": "2159:117:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "MintTokens"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 5422,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5413,
                        "name": "ElementaryTypeName",
                        "src": "2299:7:11"
                      }
                    ],
                    "id": 5414,
                    "name": "VariableDeclaration",
                    "src": "2299:23:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_beneficiary",
                      "scope": 5422,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5415,
                        "name": "ElementaryTypeName",
                        "src": "2324:7:11"
                      }
                    ],
                    "id": 5416,
                    "name": "VariableDeclaration",
                    "src": "2324:28:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_amount",
                      "scope": 5422,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 5417,
                        "name": "ElementaryTypeName",
                        "src": "2354:7:11"
                      }
                    ],
                    "id": 5418,
                    "name": "VariableDeclaration",
                    "src": "2354:15:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 5422,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5419,
                        "name": "ElementaryTypeName",
                        "src": "2371:7:11"
                      }
                    ],
                    "id": 5420,
                    "name": "VariableDeclaration",
                    "src": "2371:23:11"
                  }
                ],
                "id": 5421,
                "name": "ParameterList",
                "src": "2298:97:11"
              }
            ],
            "id": 5422,
            "name": "EventDefinition",
            "src": "2281:115:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "RegisterScheme"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 5430,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5423,
                        "name": "ElementaryTypeName",
                        "src": "2423:7:11"
                      }
                    ],
                    "id": 5424,
                    "name": "VariableDeclaration",
                    "src": "2423:23:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_scheme",
                      "scope": 5430,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5425,
                        "name": "ElementaryTypeName",
                        "src": "2448:7:11"
                      }
                    ],
                    "id": 5426,
                    "name": "VariableDeclaration",
                    "src": "2448:23:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 5430,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5427,
                        "name": "ElementaryTypeName",
                        "src": "2472:7:11"
                      }
                    ],
                    "id": 5428,
                    "name": "VariableDeclaration",
                    "src": "2472:23:11"
                  }
                ],
                "id": 5429,
                "name": "ParameterList",
                "src": "2422:74:11"
              }
            ],
            "id": 5430,
            "name": "EventDefinition",
            "src": "2401:96:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "UnregisterScheme"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 5438,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5431,
                        "name": "ElementaryTypeName",
                        "src": "2526:7:11"
                      }
                    ],
                    "id": 5432,
                    "name": "VariableDeclaration",
                    "src": "2526:23:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_scheme",
                      "scope": 5438,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5433,
                        "name": "ElementaryTypeName",
                        "src": "2551:7:11"
                      }
                    ],
                    "id": 5434,
                    "name": "VariableDeclaration",
                    "src": "2551:23:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 5438,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5435,
                        "name": "ElementaryTypeName",
                        "src": "2576:7:11"
                      }
                    ],
                    "id": 5436,
                    "name": "VariableDeclaration",
                    "src": "2576:23:11"
                  }
                ],
                "id": 5437,
                "name": "ParameterList",
                "src": "2525:75:11"
              }
            ],
            "id": 5438,
            "name": "EventDefinition",
            "src": "2502:99:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "GenericAction"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 5445,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5439,
                        "name": "ElementaryTypeName",
                        "src": "2627:7:11"
                      }
                    ],
                    "id": 5440,
                    "name": "VariableDeclaration",
                    "src": "2627:23:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_params",
                      "scope": 5445,
                      "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": 5441,
                            "name": "ElementaryTypeName",
                            "src": "2652:7:11"
                          }
                        ],
                        "id": 5442,
                        "name": "ArrayTypeName",
                        "src": "2652:9:11"
                      }
                    ],
                    "id": 5443,
                    "name": "VariableDeclaration",
                    "src": "2652:17:11"
                  }
                ],
                "id": 5444,
                "name": "ParameterList",
                "src": "2626:44:11"
              }
            ],
            "id": 5445,
            "name": "EventDefinition",
            "src": "2606:65:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "SendEther"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 5453,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5446,
                        "name": "ElementaryTypeName",
                        "src": "2693:7:11"
                      }
                    ],
                    "id": 5447,
                    "name": "VariableDeclaration",
                    "src": "2693:23:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_amountInWei",
                      "scope": 5453,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5448,
                        "name": "ElementaryTypeName",
                        "src": "2718:4:11"
                      }
                    ],
                    "id": 5449,
                    "name": "VariableDeclaration",
                    "src": "2718:17:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_to",
                      "scope": 5453,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5450,
                        "name": "ElementaryTypeName",
                        "src": "2737:7:11"
                      }
                    ],
                    "id": 5451,
                    "name": "VariableDeclaration",
                    "src": "2737:19:11"
                  }
                ],
                "id": 5452,
                "name": "ParameterList",
                "src": "2692:65:11"
              }
            ],
            "id": 5453,
            "name": "EventDefinition",
            "src": "2676:82:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenTransfer"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 5463,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5454,
                        "name": "ElementaryTypeName",
                        "src": "2792:7:11"
                      }
                    ],
                    "id": 5455,
                    "name": "VariableDeclaration",
                    "src": "2792:23:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 5463,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5456,
                        "name": "ElementaryTypeName",
                        "src": "2817:7:11"
                      }
                    ],
                    "id": 5457,
                    "name": "VariableDeclaration",
                    "src": "2817:30:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_to",
                      "scope": 5463,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5458,
                        "name": "ElementaryTypeName",
                        "src": "2849:7:11"
                      }
                    ],
                    "id": 5459,
                    "name": "VariableDeclaration",
                    "src": "2849:19:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 5463,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5460,
                        "name": "ElementaryTypeName",
                        "src": "2870:4:11"
                      }
                    ],
                    "id": 5461,
                    "name": "VariableDeclaration",
                    "src": "2870:11:11"
                  }
                ],
                "id": 5462,
                "name": "ParameterList",
                "src": "2791:91:11"
              }
            ],
            "id": 5463,
            "name": "EventDefinition",
            "src": "2763:120:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenTransferFrom"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 5475,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5464,
                        "name": "ElementaryTypeName",
                        "src": "2921:7:11"
                      }
                    ],
                    "id": 5465,
                    "name": "VariableDeclaration",
                    "src": "2921:23:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 5475,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5466,
                        "name": "ElementaryTypeName",
                        "src": "2946:7:11"
                      }
                    ],
                    "id": 5467,
                    "name": "VariableDeclaration",
                    "src": "2946:30:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_from",
                      "scope": 5475,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5468,
                        "name": "ElementaryTypeName",
                        "src": "2978:7:11"
                      }
                    ],
                    "id": 5469,
                    "name": "VariableDeclaration",
                    "src": "2978:13:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_to",
                      "scope": 5475,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5470,
                        "name": "ElementaryTypeName",
                        "src": "2993:7:11"
                      }
                    ],
                    "id": 5471,
                    "name": "VariableDeclaration",
                    "src": "2993:11:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 5475,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5472,
                        "name": "ElementaryTypeName",
                        "src": "3006:4:11"
                      }
                    ],
                    "id": 5473,
                    "name": "VariableDeclaration",
                    "src": "3006:11:11"
                  }
                ],
                "id": 5474,
                "name": "ParameterList",
                "src": "2920:98:11"
              }
            ],
            "id": 5475,
            "name": "EventDefinition",
            "src": "2888:131:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenIncreaseApproval"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 5485,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5476,
                        "name": "ElementaryTypeName",
                        "src": "3061:7:11"
                      }
                    ],
                    "id": 5477,
                    "name": "VariableDeclaration",
                    "src": "3061:23:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 5485,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 5478,
                        "name": "UserDefinedTypeName",
                        "src": "3086:13:11"
                      }
                    ],
                    "id": 5479,
                    "name": "VariableDeclaration",
                    "src": "3086:36:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_spender",
                      "scope": 5485,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5480,
                        "name": "ElementaryTypeName",
                        "src": "3124:7:11"
                      }
                    ],
                    "id": 5481,
                    "name": "VariableDeclaration",
                    "src": "3124:16:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 5485,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5482,
                        "name": "ElementaryTypeName",
                        "src": "3142:4:11"
                      }
                    ],
                    "id": 5483,
                    "name": "VariableDeclaration",
                    "src": "3142:11:11"
                  }
                ],
                "id": 5484,
                "name": "ParameterList",
                "src": "3060:94:11"
              }
            ],
            "id": 5485,
            "name": "EventDefinition",
            "src": "3024:131:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenDecreaseApproval"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 5495,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5486,
                        "name": "ElementaryTypeName",
                        "src": "3197:7:11"
                      }
                    ],
                    "id": 5487,
                    "name": "VariableDeclaration",
                    "src": "3197:23:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 5495,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 5488,
                        "name": "UserDefinedTypeName",
                        "src": "3222:13:11"
                      }
                    ],
                    "id": 5489,
                    "name": "VariableDeclaration",
                    "src": "3222:36:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_spender",
                      "scope": 5495,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5490,
                        "name": "ElementaryTypeName",
                        "src": "3260:7:11"
                      }
                    ],
                    "id": 5491,
                    "name": "VariableDeclaration",
                    "src": "3260:16:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 5495,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5492,
                        "name": "ElementaryTypeName",
                        "src": "3278:4:11"
                      }
                    ],
                    "id": 5493,
                    "name": "VariableDeclaration",
                    "src": "3278:11:11"
                  }
                ],
                "id": 5494,
                "name": "ParameterList",
                "src": "3196:94:11"
              }
            ],
            "id": 5495,
            "name": "EventDefinition",
            "src": "3160:131:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "AddGlobalConstraint"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_globalConstraint",
                      "scope": 5501,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5496,
                        "name": "ElementaryTypeName",
                        "src": "3322:7:11"
                      }
                    ],
                    "id": 5497,
                    "name": "VariableDeclaration",
                    "src": "3322:25:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_params",
                      "scope": 5501,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 5498,
                        "name": "ElementaryTypeName",
                        "src": "3349:7:11"
                      }
                    ],
                    "id": 5499,
                    "name": "VariableDeclaration",
                    "src": "3349:15:11"
                  }
                ],
                "id": 5500,
                "name": "ParameterList",
                "src": "3321:44:11"
              }
            ],
            "id": 5501,
            "name": "EventDefinition",
            "src": "3296:70:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "RemoveGlobalConstraint"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_globalConstraint",
                      "scope": 5507,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5502,
                        "name": "ElementaryTypeName",
                        "src": "3400:7:11"
                      }
                    ],
                    "id": 5503,
                    "name": "VariableDeclaration",
                    "src": "3400:25:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_index",
                      "scope": 5507,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 5504,
                        "name": "ElementaryTypeName",
                        "src": "3427:7:11"
                      }
                    ],
                    "id": 5505,
                    "name": "VariableDeclaration",
                    "src": "3427:14:11"
                  }
                ],
                "id": 5506,
                "name": "ParameterList",
                "src": "3399:43:11"
              }
            ],
            "id": 5507,
            "name": "EventDefinition",
            "src": "3371:72:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "UpgradeController"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_oldController",
                      "scope": 5515,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5508,
                        "name": "ElementaryTypeName",
                        "src": "3472:7:11"
                      }
                    ],
                    "id": 5509,
                    "name": "VariableDeclaration",
                    "src": "3472:22:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_newController",
                      "scope": 5515,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5510,
                        "name": "ElementaryTypeName",
                        "src": "3495:7:11"
                      }
                    ],
                    "id": 5511,
                    "name": "VariableDeclaration",
                    "src": "3495:22:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_avatar",
                      "scope": 5515,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5512,
                        "name": "ElementaryTypeName",
                        "src": "3518:7:11"
                      }
                    ],
                    "id": 5513,
                    "name": "VariableDeclaration",
                    "src": "3518:15:11"
                  }
                ],
                "id": 5514,
                "name": "ParameterList",
                "src": "3471:63:11"
              }
            ],
            "id": 5515,
            "name": "EventDefinition",
            "src": "3448:87:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "UController",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 5516,
                "name": "ParameterList",
                "src": "3561:2:11"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 5517,
                "name": "ParameterList",
                "src": "3570:0:11"
              },
              {
                "attributes": {
                  "statements": [
                    null
                  ]
                },
                "children": [],
                "id": 5518,
                "name": "Block",
                "src": "3570:2:11"
              }
            ],
            "id": 5519,
            "name": "FunctionDefinition",
            "src": "3541:31:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "newOrganization",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5603,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Avatar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Avatar",
                          "referencedDeclaration": 3873,
                          "type": "contract Avatar"
                        },
                        "id": 5520,
                        "name": "UserDefinedTypeName",
                        "src": "3749:6:11"
                      }
                    ],
                    "id": 5521,
                    "name": "VariableDeclaration",
                    "src": "3749:14:11"
                  }
                ],
                "id": 5522,
                "name": "ParameterList",
                "src": "3739:30:11"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 5523,
                "name": "ParameterList",
                "src": "3781:0:11"
              },
              {
                "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": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5524,
                            "name": "Identifier",
                            "src": "3791:7:11"
                          },
                          {
                            "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": 5393,
                                  "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": 5398,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5525,
                                        "name": "Identifier",
                                        "src": "3800:13:11"
                                      },
                                      {
                                        "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_$3873",
                                                  "typeString": "contract Avatar"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(address)",
                                              "value": "address"
                                            },
                                            "id": 5526,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "3814:7:11"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5521,
                                              "type": "contract Avatar",
                                              "value": "_avatar"
                                            },
                                            "id": 5527,
                                            "name": "Identifier",
                                            "src": "3822:7:11"
                                          }
                                        ],
                                        "id": 5528,
                                        "name": "FunctionCall",
                                        "src": "3814:16:11"
                                      }
                                    ],
                                    "id": 5529,
                                    "name": "IndexAccess",
                                    "src": "3800:31:11"
                                  }
                                ],
                                "id": 5530,
                                "name": "MemberAccess",
                                "src": "3800:37:11"
                              }
                            ],
                            "id": 5531,
                            "name": "UnaryOperation",
                            "src": "3799:38:11"
                          }
                        ],
                        "id": 5532,
                        "name": "FunctionCall",
                        "src": "3791:47:11"
                      }
                    ],
                    "id": 5533,
                    "name": "ExpressionStatement",
                    "src": "3791:47:11"
                  },
                  {
                    "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": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5534,
                            "name": "Identifier",
                            "src": "3848:7:11"
                          },
                          {
                            "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": 11393,
                                      "type": "function () view external returns (address)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5521,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 5535,
                                        "name": "Identifier",
                                        "src": "3856:7:11"
                                      }
                                    ],
                                    "id": 5536,
                                    "name": "MemberAccess",
                                    "src": "3856:13:11"
                                  }
                                ],
                                "id": 5537,
                                "name": "FunctionCall",
                                "src": "3856:15:11"
                              },
                              {
                                "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_$6673",
                                          "typeString": "contract UController"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 5538,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "3875:7:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 12072,
                                      "type": "contract UController",
                                      "value": "this"
                                    },
                                    "id": 5539,
                                    "name": "Identifier",
                                    "src": "3883:4:11"
                                  }
                                ],
                                "id": 5540,
                                "name": "FunctionCall",
                                "src": "3875:13:11"
                              }
                            ],
                            "id": 5541,
                            "name": "BinaryOperation",
                            "src": "3856:32:11"
                          }
                        ],
                        "id": 5542,
                        "name": "FunctionCall",
                        "src": "3848:41:11"
                      }
                    ],
                    "id": 5543,
                    "name": "ExpressionStatement",
                    "src": "3848:41:11"
                  },
                  {
                    "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": 5393,
                              "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": 5398,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 5544,
                                    "name": "Identifier",
                                    "src": "3899:13:11"
                                  },
                                  {
                                    "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_$3873",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(address)",
                                          "value": "address"
                                        },
                                        "id": 5545,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "3913:7:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5521,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 5546,
                                        "name": "Identifier",
                                        "src": "3921:7:11"
                                      }
                                    ],
                                    "id": 5547,
                                    "name": "FunctionCall",
                                    "src": "3913:16:11"
                                  }
                                ],
                                "id": 5548,
                                "name": "IndexAccess",
                                "src": "3899:31:11"
                              }
                            ],
                            "id": 5549,
                            "name": "MemberAccess",
                            "src": "3899:37:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "74727565",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "true"
                            },
                            "id": 5550,
                            "name": "Literal",
                            "src": "3939:4:11"
                          }
                        ],
                        "id": 5551,
                        "name": "Assignment",
                        "src": "3899:44:11"
                      }
                    ],
                    "id": 5552,
                    "name": "ExpressionStatement",
                    "src": "3899:44:11"
                  },
                  {
                    "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": 5378,
                              "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": 5398,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 5553,
                                    "name": "Identifier",
                                    "src": "3953:13:11"
                                  },
                                  {
                                    "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_$3873",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(address)",
                                          "value": "address"
                                        },
                                        "id": 5554,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "3967:7:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5521,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 5555,
                                        "name": "Identifier",
                                        "src": "3975:7:11"
                                      }
                                    ],
                                    "id": 5556,
                                    "name": "FunctionCall",
                                    "src": "3967:16:11"
                                  }
                                ],
                                "id": 5557,
                                "name": "IndexAccess",
                                "src": "3953:31:11"
                              }
                            ],
                            "id": 5558,
                            "name": "MemberAccess",
                            "src": "3953:43:11"
                          },
                          {
                            "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": 3604,
                                  "type": "function () view external returns (contract DAOToken)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5521,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 5559,
                                    "name": "Identifier",
                                    "src": "3999:7:11"
                                  }
                                ],
                                "id": 5560,
                                "name": "MemberAccess",
                                "src": "3999:19:11"
                              }
                            ],
                            "id": 5561,
                            "name": "FunctionCall",
                            "src": "3999:21:11"
                          }
                        ],
                        "id": 5562,
                        "name": "Assignment",
                        "src": "3953:67:11"
                      }
                    ],
                    "id": 5563,
                    "name": "ExpressionStatement",
                    "src": "3953:67:11"
                  },
                  {
                    "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": 5380,
                              "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": 5398,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 5564,
                                    "name": "Identifier",
                                    "src": "4030:13:11"
                                  },
                                  {
                                    "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_$3873",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(address)",
                                          "value": "address"
                                        },
                                        "id": 5565,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4044:7:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5521,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 5566,
                                        "name": "Identifier",
                                        "src": "4052:7:11"
                                      }
                                    ],
                                    "id": 5567,
                                    "name": "FunctionCall",
                                    "src": "4044:16:11"
                                  }
                                ],
                                "id": 5568,
                                "name": "IndexAccess",
                                "src": "4030:31:11"
                              }
                            ],
                            "id": 5569,
                            "name": "MemberAccess",
                            "src": "4030:48:11"
                          },
                          {
                            "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": 3606,
                                  "type": "function () view external returns (contract Reputation)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5521,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 5570,
                                    "name": "Identifier",
                                    "src": "4081:7:11"
                                  }
                                ],
                                "id": 5571,
                                "name": "MemberAccess",
                                "src": "4081:24:11"
                              }
                            ],
                            "id": 5572,
                            "name": "FunctionCall",
                            "src": "4081:26:11"
                          }
                        ],
                        "id": 5573,
                        "name": "Assignment",
                        "src": "4030:77:11"
                      }
                    ],
                    "id": 5574,
                    "name": "ExpressionStatement",
                    "src": "4030:77:11"
                  },
                  {
                    "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": 5384,
                                  "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": 5398,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5575,
                                        "name": "Identifier",
                                        "src": "4117:13:11"
                                      },
                                      {
                                        "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_$3873",
                                                  "typeString": "contract Avatar"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(address)",
                                              "value": "address"
                                            },
                                            "id": 5576,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "4131:7:11"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5521,
                                              "type": "contract Avatar",
                                              "value": "_avatar"
                                            },
                                            "id": 5577,
                                            "name": "Identifier",
                                            "src": "4139:7:11"
                                          }
                                        ],
                                        "id": 5578,
                                        "name": "FunctionCall",
                                        "src": "4131:16:11"
                                      }
                                    ],
                                    "id": 5579,
                                    "name": "IndexAccess",
                                    "src": "4117:31:11"
                                  }
                                ],
                                "id": 5580,
                                "name": "MemberAccess",
                                "src": "4117:39:11"
                              },
                              {
                                "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": 12011,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 5581,
                                    "name": "Identifier",
                                    "src": "4157:3:11"
                                  }
                                ],
                                "id": 5582,
                                "name": "MemberAccess",
                                "src": "4157:10:11"
                              }
                            ],
                            "id": 5583,
                            "name": "IndexAccess",
                            "src": "4117:51:11"
                          },
                          {
                            "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": 5366,
                                  "type": "type(struct UController.Scheme storage pointer)",
                                  "value": "Scheme"
                                },
                                "id": 5584,
                                "name": "Identifier",
                                "src": "4171:6:11"
                              },
                              {
                                "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": 5585,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4191:7:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5586,
                                    "name": "Literal",
                                    "src": "4199:1:11"
                                  }
                                ],
                                "id": 5587,
                                "name": "FunctionCall",
                                "src": "4191:10:11"
                              },
                              {
                                "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": 5588,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4215:6:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "307846",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 15",
                                      "value": "0xF"
                                    },
                                    "id": 5589,
                                    "name": "Literal",
                                    "src": "4222:3:11"
                                  }
                                ],
                                "id": 5590,
                                "name": "FunctionCall",
                                "src": "4215:11:11"
                              }
                            ],
                            "id": 5591,
                            "name": "FunctionCall",
                            "src": "4171:57:11"
                          }
                        ],
                        "id": 5592,
                        "name": "Assignment",
                        "src": "4117:111:11"
                      }
                    ],
                    "id": 5593,
                    "name": "ExpressionStatement",
                    "src": "4117:111:11"
                  },
                  {
                    "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_$3873",
                                  "typeString": "contract Avatar"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5430,
                              "type": "function (address,address,address)",
                              "value": "RegisterScheme"
                            },
                            "id": 5594,
                            "name": "Identifier",
                            "src": "4238:14:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5595,
                                "name": "Identifier",
                                "src": "4253:3:11"
                              }
                            ],
                            "id": 5596,
                            "name": "MemberAccess",
                            "src": "4253:10:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5597,
                                "name": "Identifier",
                                "src": "4265:3:11"
                              }
                            ],
                            "id": 5598,
                            "name": "MemberAccess",
                            "src": "4265:10:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5521,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 5599,
                            "name": "Identifier",
                            "src": "4276:7:11"
                          }
                        ],
                        "id": 5600,
                        "name": "FunctionCall",
                        "src": "4238:46:11"
                      }
                    ],
                    "id": 5601,
                    "name": "ExpressionStatement",
                    "src": "4238:46:11"
                  }
                ],
                "id": 5602,
                "name": "Block",
                "src": "3781:510:11"
              }
            ],
            "id": 5603,
            "name": "FunctionDefinition",
            "src": "3715:576:11"
          },
          {
            "attributes": {
              "name": "onlyRegisteredScheme",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "avatar",
                      "scope": 5628,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5604,
                        "name": "ElementaryTypeName",
                        "src": "4343:7:11"
                      }
                    ],
                    "id": 5605,
                    "name": "VariableDeclaration",
                    "src": "4343:14:11"
                  }
                ],
                "id": 5606,
                "name": "ParameterList",
                "src": "4342:16:11"
              },
              {
                "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": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5607,
                            "name": "Identifier",
                            "src": "4369:7:11"
                          },
                          {
                            "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": 5365,
                                      "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": 5384,
                                              "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": 5398,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 5608,
                                                    "name": "Identifier",
                                                    "src": "4377:13:11"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5605,
                                                      "type": "address",
                                                      "value": "avatar"
                                                    },
                                                    "id": 5609,
                                                    "name": "Identifier",
                                                    "src": "4391:6:11"
                                                  }
                                                ],
                                                "id": 5610,
                                                "name": "IndexAccess",
                                                "src": "4377:21:11"
                                              }
                                            ],
                                            "id": 5611,
                                            "name": "MemberAccess",
                                            "src": "4377:29:11"
                                          },
                                          {
                                            "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": 12011,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 5612,
                                                "name": "Identifier",
                                                "src": "4407:3:11"
                                              }
                                            ],
                                            "id": 5613,
                                            "name": "MemberAccess",
                                            "src": "4407:10:11"
                                          }
                                        ],
                                        "id": 5614,
                                        "name": "IndexAccess",
                                        "src": "4377:41:11"
                                      }
                                    ],
                                    "id": 5615,
                                    "name": "MemberAccess",
                                    "src": "4377:53:11"
                                  },
                                  {
                                    "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": 5616,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4431:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 5617,
                                        "name": "Literal",
                                        "src": "4438:1:11"
                                      }
                                    ],
                                    "id": 5618,
                                    "name": "FunctionCall",
                                    "src": "4431:9:11"
                                  }
                                ],
                                "id": 5619,
                                "name": "BinaryOperation",
                                "src": "4377:63:11"
                              },
                              {
                                "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": 5620,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4444:6:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "31",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "1"
                                    },
                                    "id": 5621,
                                    "name": "Literal",
                                    "src": "4451:1:11"
                                  }
                                ],
                                "id": 5622,
                                "name": "FunctionCall",
                                "src": "4444:9:11"
                              }
                            ],
                            "id": 5623,
                            "name": "BinaryOperation",
                            "src": "4377:76:11"
                          }
                        ],
                        "id": 5624,
                        "name": "FunctionCall",
                        "src": "4369:85:11"
                      }
                    ],
                    "id": 5625,
                    "name": "ExpressionStatement",
                    "src": "4369:85:11"
                  },
                  {
                    "id": 5626,
                    "name": "PlaceholderStatement",
                    "src": "4464:1:11"
                  }
                ],
                "id": 5627,
                "name": "Block",
                "src": "4359:113:11"
              }
            ],
            "id": 5628,
            "name": "ModifierDefinition",
            "src": "4313:159:11"
          },
          {
            "attributes": {
              "name": "onlyRegisteringSchemes",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "avatar",
                      "scope": 5653,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5629,
                        "name": "ElementaryTypeName",
                        "src": "4510:7:11"
                      }
                    ],
                    "id": 5630,
                    "name": "VariableDeclaration",
                    "src": "4510:14:11"
                  }
                ],
                "id": 5631,
                "name": "ParameterList",
                "src": "4509:16:11"
              },
              {
                "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": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5632,
                            "name": "Identifier",
                            "src": "4536:7:11"
                          },
                          {
                            "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": 5365,
                                      "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": 5384,
                                              "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": 5398,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 5633,
                                                    "name": "Identifier",
                                                    "src": "4544:13:11"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5630,
                                                      "type": "address",
                                                      "value": "avatar"
                                                    },
                                                    "id": 5634,
                                                    "name": "Identifier",
                                                    "src": "4558:6:11"
                                                  }
                                                ],
                                                "id": 5635,
                                                "name": "IndexAccess",
                                                "src": "4544:21:11"
                                              }
                                            ],
                                            "id": 5636,
                                            "name": "MemberAccess",
                                            "src": "4544:29:11"
                                          },
                                          {
                                            "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": 12011,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 5637,
                                                "name": "Identifier",
                                                "src": "4574:3:11"
                                              }
                                            ],
                                            "id": 5638,
                                            "name": "MemberAccess",
                                            "src": "4574:10:11"
                                          }
                                        ],
                                        "id": 5639,
                                        "name": "IndexAccess",
                                        "src": "4544:41:11"
                                      }
                                    ],
                                    "id": 5640,
                                    "name": "MemberAccess",
                                    "src": "4544:53:11"
                                  },
                                  {
                                    "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": 5641,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4598:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "32",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 2",
                                          "value": "2"
                                        },
                                        "id": 5642,
                                        "name": "Literal",
                                        "src": "4605:1:11"
                                      }
                                    ],
                                    "id": 5643,
                                    "name": "FunctionCall",
                                    "src": "4598:9:11"
                                  }
                                ],
                                "id": 5644,
                                "name": "BinaryOperation",
                                "src": "4544:63:11"
                              },
                              {
                                "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": 5645,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4611:6:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "32",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 2",
                                      "value": "2"
                                    },
                                    "id": 5646,
                                    "name": "Literal",
                                    "src": "4618:1:11"
                                  }
                                ],
                                "id": 5647,
                                "name": "FunctionCall",
                                "src": "4611:9:11"
                              }
                            ],
                            "id": 5648,
                            "name": "BinaryOperation",
                            "src": "4544:76:11"
                          }
                        ],
                        "id": 5649,
                        "name": "FunctionCall",
                        "src": "4536:85:11"
                      }
                    ],
                    "id": 5650,
                    "name": "ExpressionStatement",
                    "src": "4536:85:11"
                  },
                  {
                    "id": 5651,
                    "name": "PlaceholderStatement",
                    "src": "4631:1:11"
                  }
                ],
                "id": 5652,
                "name": "Block",
                "src": "4526:113:11"
              }
            ],
            "id": 5653,
            "name": "ModifierDefinition",
            "src": "4478:161:11"
          },
          {
            "attributes": {
              "name": "onlyGlobalConstraintsScheme",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "avatar",
                      "scope": 5678,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5654,
                        "name": "ElementaryTypeName",
                        "src": "4682:7:11"
                      }
                    ],
                    "id": 5655,
                    "name": "VariableDeclaration",
                    "src": "4682:14:11"
                  }
                ],
                "id": 5656,
                "name": "ParameterList",
                "src": "4681:16:11"
              },
              {
                "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": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5657,
                            "name": "Identifier",
                            "src": "4708:7:11"
                          },
                          {
                            "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": 5365,
                                      "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": 5384,
                                              "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": 5398,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 5658,
                                                    "name": "Identifier",
                                                    "src": "4716:13:11"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5655,
                                                      "type": "address",
                                                      "value": "avatar"
                                                    },
                                                    "id": 5659,
                                                    "name": "Identifier",
                                                    "src": "4730:6:11"
                                                  }
                                                ],
                                                "id": 5660,
                                                "name": "IndexAccess",
                                                "src": "4716:21:11"
                                              }
                                            ],
                                            "id": 5661,
                                            "name": "MemberAccess",
                                            "src": "4716:29:11"
                                          },
                                          {
                                            "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": 12011,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 5662,
                                                "name": "Identifier",
                                                "src": "4746:3:11"
                                              }
                                            ],
                                            "id": 5663,
                                            "name": "MemberAccess",
                                            "src": "4746:10:11"
                                          }
                                        ],
                                        "id": 5664,
                                        "name": "IndexAccess",
                                        "src": "4716:41:11"
                                      }
                                    ],
                                    "id": 5665,
                                    "name": "MemberAccess",
                                    "src": "4716:53:11"
                                  },
                                  {
                                    "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": 5666,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4770:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "34",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 4",
                                          "value": "4"
                                        },
                                        "id": 5667,
                                        "name": "Literal",
                                        "src": "4777:1:11"
                                      }
                                    ],
                                    "id": 5668,
                                    "name": "FunctionCall",
                                    "src": "4770:9:11"
                                  }
                                ],
                                "id": 5669,
                                "name": "BinaryOperation",
                                "src": "4716:63:11"
                              },
                              {
                                "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": 5670,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4783:6:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "34",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 4",
                                      "value": "4"
                                    },
                                    "id": 5671,
                                    "name": "Literal",
                                    "src": "4790:1:11"
                                  }
                                ],
                                "id": 5672,
                                "name": "FunctionCall",
                                "src": "4783:9:11"
                              }
                            ],
                            "id": 5673,
                            "name": "BinaryOperation",
                            "src": "4716:76:11"
                          }
                        ],
                        "id": 5674,
                        "name": "FunctionCall",
                        "src": "4708:85:11"
                      }
                    ],
                    "id": 5675,
                    "name": "ExpressionStatement",
                    "src": "4708:85:11"
                  },
                  {
                    "id": 5676,
                    "name": "PlaceholderStatement",
                    "src": "4803:1:11"
                  }
                ],
                "id": 5677,
                "name": "Block",
                "src": "4698:113:11"
              }
            ],
            "id": 5678,
            "name": "ModifierDefinition",
            "src": "4645:166:11"
          },
          {
            "attributes": {
              "name": "onlyUpgradingScheme",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5703,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5679,
                        "name": "ElementaryTypeName",
                        "src": "4846:7:11"
                      }
                    ],
                    "id": 5680,
                    "name": "VariableDeclaration",
                    "src": "4846:15:11"
                  }
                ],
                "id": 5681,
                "name": "ParameterList",
                "src": "4845:17:11"
              },
              {
                "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": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5682,
                            "name": "Identifier",
                            "src": "4873:7:11"
                          },
                          {
                            "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": 5365,
                                      "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": 5384,
                                              "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": 5398,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 5683,
                                                    "name": "Identifier",
                                                    "src": "4881:13:11"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5680,
                                                      "type": "address",
                                                      "value": "_avatar"
                                                    },
                                                    "id": 5684,
                                                    "name": "Identifier",
                                                    "src": "4895:7:11"
                                                  }
                                                ],
                                                "id": 5685,
                                                "name": "IndexAccess",
                                                "src": "4881:22:11"
                                              }
                                            ],
                                            "id": 5686,
                                            "name": "MemberAccess",
                                            "src": "4881:30:11"
                                          },
                                          {
                                            "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": 12011,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 5687,
                                                "name": "Identifier",
                                                "src": "4912:3:11"
                                              }
                                            ],
                                            "id": 5688,
                                            "name": "MemberAccess",
                                            "src": "4912:10:11"
                                          }
                                        ],
                                        "id": 5689,
                                        "name": "IndexAccess",
                                        "src": "4881:42:11"
                                      }
                                    ],
                                    "id": 5690,
                                    "name": "MemberAccess",
                                    "src": "4881:54:11"
                                  },
                                  {
                                    "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": 5691,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4936:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "38",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 8",
                                          "value": "8"
                                        },
                                        "id": 5692,
                                        "name": "Literal",
                                        "src": "4943:1:11"
                                      }
                                    ],
                                    "id": 5693,
                                    "name": "FunctionCall",
                                    "src": "4936:9:11"
                                  }
                                ],
                                "id": 5694,
                                "name": "BinaryOperation",
                                "src": "4881:64:11"
                              },
                              {
                                "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": 5695,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4949:6:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "38",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 8",
                                      "value": "8"
                                    },
                                    "id": 5696,
                                    "name": "Literal",
                                    "src": "4956:1:11"
                                  }
                                ],
                                "id": 5697,
                                "name": "FunctionCall",
                                "src": "4949:9:11"
                              }
                            ],
                            "id": 5698,
                            "name": "BinaryOperation",
                            "src": "4881:77:11"
                          }
                        ],
                        "id": 5699,
                        "name": "FunctionCall",
                        "src": "4873:86:11"
                      }
                    ],
                    "id": 5700,
                    "name": "ExpressionStatement",
                    "src": "4873:86:11"
                  },
                  {
                    "id": 5701,
                    "name": "PlaceholderStatement",
                    "src": "4969:1:11"
                  }
                ],
                "id": 5702,
                "name": "Block",
                "src": "4863:114:11"
              }
            ],
            "id": 5703,
            "name": "ModifierDefinition",
            "src": "4817:160:11"
          },
          {
            "attributes": {
              "name": "onlySubjectToConstraint",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "func",
                      "scope": 5787,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 5704,
                        "name": "ElementaryTypeName",
                        "src": "5016:7:11"
                      }
                    ],
                    "id": 5705,
                    "name": "VariableDeclaration",
                    "src": "5016:12:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5787,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5706,
                        "name": "ElementaryTypeName",
                        "src": "5029:7:11"
                      }
                    ],
                    "id": 5707,
                    "name": "VariableDeclaration",
                    "src": "5029:15:11"
                  }
                ],
                "id": 5708,
                "name": "ParameterList",
                "src": "5015:30:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        null
                      ],
                      "initialValue": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "index",
                          "scope": 5787,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 5709,
                            "name": "ElementaryTypeName",
                            "src": "5056:4:11"
                          }
                        ],
                        "id": 5710,
                        "name": "VariableDeclaration",
                        "src": "5056:10:11"
                      }
                    ],
                    "id": 5711,
                    "name": "VariableDeclarationStatement",
                    "src": "5056:10:11"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        5715
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "globalConstraints",
                          "scope": 5787,
                          "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": 5371,
                                  "type": "struct UController.GlobalConstraint storage pointer"
                                },
                                "id": 5713,
                                "name": "UserDefinedTypeName",
                                "src": "5076:16:11"
                              }
                            ],
                            "id": 5714,
                            "name": "ArrayTypeName",
                            "src": "5076:18:11"
                          }
                        ],
                        "id": 5715,
                        "name": "VariableDeclaration",
                        "src": "5076:43:11"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "globalConstraints",
                          "referencedDeclaration": 5387,
                          "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": 5398,
                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                  "value": "organizations"
                                },
                                "id": 5716,
                                "name": "Identifier",
                                "src": "5122:13:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5707,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 5717,
                                "name": "Identifier",
                                "src": "5136:7:11"
                              }
                            ],
                            "id": 5718,
                            "name": "IndexAccess",
                            "src": "5122:22:11"
                          }
                        ],
                        "id": 5719,
                        "name": "MemberAccess",
                        "src": "5122:40:11"
                      }
                    ],
                    "id": 5720,
                    "name": "VariableDeclarationStatement",
                    "src": "5076:86:11"
                  },
                  {
                    "children": [
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5710,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 5721,
                                "name": "Identifier",
                                "src": "5177:5:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 5722,
                                "name": "Literal",
                                "src": "5185:1:11"
                              }
                            ],
                            "id": 5723,
                            "name": "Assignment",
                            "src": "5177:9:11"
                          }
                        ],
                        "id": 5724,
                        "name": "ExpressionStatement",
                        "src": "5177:9:11"
                      },
                      {
                        "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": 5710,
                              "type": "uint256",
                              "value": "index"
                            },
                            "id": 5725,
                            "name": "Identifier",
                            "src": "5187:5:11"
                          },
                          {
                            "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": 5715,
                                  "type": "struct UController.GlobalConstraint memory[] memory",
                                  "value": "globalConstraints"
                                },
                                "id": 5726,
                                "name": "Identifier",
                                "src": "5193:17:11"
                              }
                            ],
                            "id": 5727,
                            "name": "MemberAccess",
                            "src": "5193:24:11"
                          }
                        ],
                        "id": 5728,
                        "name": "BinaryOperation",
                        "src": "5187:30:11"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5710,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 5729,
                                "name": "Identifier",
                                "src": "5218:5:11"
                              }
                            ],
                            "id": 5730,
                            "name": "UnaryOperation",
                            "src": "5218:7:11"
                          }
                        ],
                        "id": 5731,
                        "name": "ExpressionStatement",
                        "src": "5218:7:11"
                      },
                      {
                        "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": 12014,
                                      "type": "function (bool) pure",
                                      "value": "require"
                                    },
                                    "id": 5732,
                                    "name": "Identifier",
                                    "src": "5241:7:11"
                                  },
                                  {
                                    "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": 6686,
                                          "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": 6698,
                                                      "type": "type(contract GlobalConstraintInterface)",
                                                      "value": "GlobalConstraintInterface"
                                                    },
                                                    "id": 5733,
                                                    "name": "Identifier",
                                                    "src": "5250:25:11"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "gcAddress",
                                                      "referencedDeclaration": 5368,
                                                      "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": 5715,
                                                              "type": "struct UController.GlobalConstraint memory[] memory",
                                                              "value": "globalConstraints"
                                                            },
                                                            "id": 5734,
                                                            "name": "Identifier",
                                                            "src": "5276:17:11"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 5710,
                                                              "type": "uint256",
                                                              "value": "index"
                                                            },
                                                            "id": 5735,
                                                            "name": "Identifier",
                                                            "src": "5294:5:11"
                                                          }
                                                        ],
                                                        "id": 5736,
                                                        "name": "IndexAccess",
                                                        "src": "5276:24:11"
                                                      }
                                                    ],
                                                    "id": 5737,
                                                    "name": "MemberAccess",
                                                    "src": "5276:34:11"
                                                  }
                                                ],
                                                "id": 5738,
                                                "name": "FunctionCall",
                                                "src": "5250:61:11"
                                              }
                                            ],
                                            "id": 5739,
                                            "name": "TupleExpression",
                                            "src": "5249:63:11"
                                          }
                                        ],
                                        "id": 5740,
                                        "name": "MemberAccess",
                                        "src": "5249:67:11"
                                      },
                                      {
                                        "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": 12011,
                                              "type": "msg",
                                              "value": "msg"
                                            },
                                            "id": 5741,
                                            "name": "Identifier",
                                            "src": "5317:3:11"
                                          }
                                        ],
                                        "id": 5742,
                                        "name": "MemberAccess",
                                        "src": "5317:10:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "params",
                                          "referencedDeclaration": 5370,
                                          "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": 5715,
                                                  "type": "struct UController.GlobalConstraint memory[] memory",
                                                  "value": "globalConstraints"
                                                },
                                                "id": 5743,
                                                "name": "Identifier",
                                                "src": "5329:17:11"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5710,
                                                  "type": "uint256",
                                                  "value": "index"
                                                },
                                                "id": 5744,
                                                "name": "Identifier",
                                                "src": "5347:5:11"
                                              }
                                            ],
                                            "id": 5745,
                                            "name": "IndexAccess",
                                            "src": "5329:24:11"
                                          }
                                        ],
                                        "id": 5746,
                                        "name": "MemberAccess",
                                        "src": "5329:31:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5705,
                                          "type": "bytes32",
                                          "value": "func"
                                        },
                                        "id": 5747,
                                        "name": "Identifier",
                                        "src": "5362:4:11"
                                      }
                                    ],
                                    "id": 5748,
                                    "name": "FunctionCall",
                                    "src": "5249:118:11"
                                  }
                                ],
                                "id": 5749,
                                "name": "FunctionCall",
                                "src": "5241:127:11"
                              }
                            ],
                            "id": 5750,
                            "name": "ExpressionStatement",
                            "src": "5241:127:11"
                          }
                        ],
                        "id": 5751,
                        "name": "Block",
                        "src": "5227:152:11"
                      }
                    ],
                    "id": 5752,
                    "name": "ForStatement",
                    "src": "5172:207:11"
                  },
                  {
                    "id": 5753,
                    "name": "PlaceholderStatement",
                    "src": "5388:1:11"
                  },
                  {
                    "children": [
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5710,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 5754,
                                "name": "Identifier",
                                "src": "5404:5:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 5755,
                                "name": "Literal",
                                "src": "5412:1:11"
                              }
                            ],
                            "id": 5756,
                            "name": "Assignment",
                            "src": "5404:9:11"
                          }
                        ],
                        "id": 5757,
                        "name": "ExpressionStatement",
                        "src": "5404:9:11"
                      },
                      {
                        "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": 5710,
                              "type": "uint256",
                              "value": "index"
                            },
                            "id": 5758,
                            "name": "Identifier",
                            "src": "5414:5:11"
                          },
                          {
                            "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": 5715,
                                  "type": "struct UController.GlobalConstraint memory[] memory",
                                  "value": "globalConstraints"
                                },
                                "id": 5759,
                                "name": "Identifier",
                                "src": "5420:17:11"
                              }
                            ],
                            "id": 5760,
                            "name": "MemberAccess",
                            "src": "5420:24:11"
                          }
                        ],
                        "id": 5761,
                        "name": "BinaryOperation",
                        "src": "5414:30:11"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5710,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 5762,
                                "name": "Identifier",
                                "src": "5445:5:11"
                              }
                            ],
                            "id": 5763,
                            "name": "UnaryOperation",
                            "src": "5445:7:11"
                          }
                        ],
                        "id": 5764,
                        "name": "ExpressionStatement",
                        "src": "5445:7:11"
                      },
                      {
                        "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": 12014,
                                      "type": "function (bool) pure",
                                      "value": "require"
                                    },
                                    "id": 5765,
                                    "name": "Identifier",
                                    "src": "5468:7:11"
                                  },
                                  {
                                    "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": 6697,
                                          "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": 6698,
                                                      "type": "type(contract GlobalConstraintInterface)",
                                                      "value": "GlobalConstraintInterface"
                                                    },
                                                    "id": 5766,
                                                    "name": "Identifier",
                                                    "src": "5477:25:11"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "gcAddress",
                                                      "referencedDeclaration": 5368,
                                                      "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": 5715,
                                                              "type": "struct UController.GlobalConstraint memory[] memory",
                                                              "value": "globalConstraints"
                                                            },
                                                            "id": 5767,
                                                            "name": "Identifier",
                                                            "src": "5503:17:11"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 5710,
                                                              "type": "uint256",
                                                              "value": "index"
                                                            },
                                                            "id": 5768,
                                                            "name": "Identifier",
                                                            "src": "5521:5:11"
                                                          }
                                                        ],
                                                        "id": 5769,
                                                        "name": "IndexAccess",
                                                        "src": "5503:24:11"
                                                      }
                                                    ],
                                                    "id": 5770,
                                                    "name": "MemberAccess",
                                                    "src": "5503:34:11"
                                                  }
                                                ],
                                                "id": 5771,
                                                "name": "FunctionCall",
                                                "src": "5477:61:11"
                                              }
                                            ],
                                            "id": 5772,
                                            "name": "TupleExpression",
                                            "src": "5476:63:11"
                                          }
                                        ],
                                        "id": 5773,
                                        "name": "MemberAccess",
                                        "src": "5476:68:11"
                                      },
                                      {
                                        "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": 12011,
                                              "type": "msg",
                                              "value": "msg"
                                            },
                                            "id": 5774,
                                            "name": "Identifier",
                                            "src": "5545:3:11"
                                          }
                                        ],
                                        "id": 5775,
                                        "name": "MemberAccess",
                                        "src": "5545:10:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "params",
                                          "referencedDeclaration": 5370,
                                          "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": 5715,
                                                  "type": "struct UController.GlobalConstraint memory[] memory",
                                                  "value": "globalConstraints"
                                                },
                                                "id": 5776,
                                                "name": "Identifier",
                                                "src": "5557:17:11"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5710,
                                                  "type": "uint256",
                                                  "value": "index"
                                                },
                                                "id": 5777,
                                                "name": "Identifier",
                                                "src": "5575:5:11"
                                              }
                                            ],
                                            "id": 5778,
                                            "name": "IndexAccess",
                                            "src": "5557:24:11"
                                          }
                                        ],
                                        "id": 5779,
                                        "name": "MemberAccess",
                                        "src": "5557:31:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5705,
                                          "type": "bytes32",
                                          "value": "func"
                                        },
                                        "id": 5780,
                                        "name": "Identifier",
                                        "src": "5590:4:11"
                                      }
                                    ],
                                    "id": 5781,
                                    "name": "FunctionCall",
                                    "src": "5476:119:11"
                                  }
                                ],
                                "id": 5782,
                                "name": "FunctionCall",
                                "src": "5468:128:11"
                              }
                            ],
                            "id": 5783,
                            "name": "ExpressionStatement",
                            "src": "5468:128:11"
                          }
                        ],
                        "id": 5784,
                        "name": "Block",
                        "src": "5454:153:11"
                      }
                    ],
                    "id": 5785,
                    "name": "ForStatement",
                    "src": "5399:208:11"
                  }
                ],
                "id": 5786,
                "name": "Block",
                "src": "5046:567:11"
              }
            ],
            "id": 5787,
            "name": "ModifierDefinition",
            "src": "4983:630:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "mintReputation",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": 4984,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amount",
                      "scope": 5823,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 5788,
                        "name": "ElementaryTypeName",
                        "src": "5882:6:11"
                      }
                    ],
                    "id": 5789,
                    "name": "VariableDeclaration",
                    "src": "5882:14:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_beneficiary",
                      "scope": 5823,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5790,
                        "name": "ElementaryTypeName",
                        "src": "5898:7:11"
                      }
                    ],
                    "id": 5791,
                    "name": "VariableDeclaration",
                    "src": "5898:20:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5823,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5792,
                        "name": "ElementaryTypeName",
                        "src": "5919:7:11"
                      }
                    ],
                    "id": 5793,
                    "name": "VariableDeclaration",
                    "src": "5919:15:11"
                  }
                ],
                "id": 5794,
                "name": "ParameterList",
                "src": "5881:54:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5823,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5802,
                        "name": "ElementaryTypeName",
                        "src": "6047:4:11"
                      }
                    ],
                    "id": 5803,
                    "name": "VariableDeclaration",
                    "src": "6047:4:11"
                  }
                ],
                "id": 5804,
                "name": "ParameterList",
                "src": "6046:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5628,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5795,
                    "name": "Identifier",
                    "src": "5951:20:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5793,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5796,
                    "name": "Identifier",
                    "src": "5972:7:11"
                  }
                ],
                "id": 5797,
                "name": "ModifierInvocation",
                "src": "5951:29:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5787,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5798,
                    "name": "Identifier",
                    "src": "5985:23:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "6d696e7452657075746174696f6e",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"mintReputation\"",
                      "value": "mintReputation"
                    },
                    "id": 5799,
                    "name": "Literal",
                    "src": "6009:16:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5793,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5800,
                    "name": "Identifier",
                    "src": "6026:7:11"
                  }
                ],
                "id": 5801,
                "name": "ModifierInvocation",
                "src": "5985:49:11"
              },
              {
                "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": 5412,
                              "type": "function (address,address,int256,address)",
                              "value": "MintReputation"
                            },
                            "id": 5805,
                            "name": "Identifier",
                            "src": "6067:14:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5806,
                                "name": "Identifier",
                                "src": "6082:3:11"
                              }
                            ],
                            "id": 5807,
                            "name": "MemberAccess",
                            "src": "6082:10:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5791,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 5808,
                            "name": "Identifier",
                            "src": "6094:12:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5789,
                              "type": "int256",
                              "value": "_amount"
                            },
                            "id": 5809,
                            "name": "Identifier",
                            "src": "6108:7:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5793,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5810,
                            "name": "Identifier",
                            "src": "6116:7:11"
                          }
                        ],
                        "id": 5811,
                        "name": "FunctionCall",
                        "src": "6067:57:11"
                      }
                    ],
                    "id": 5812,
                    "name": "ExpressionStatement",
                    "src": "6067:57:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5804
                    },
                    "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": 5351,
                              "type": "function (address,int256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "nativeReputation",
                                  "referencedDeclaration": 5380,
                                  "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": 5398,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5813,
                                        "name": "Identifier",
                                        "src": "6141:13:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5793,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5814,
                                        "name": "Identifier",
                                        "src": "6155:7:11"
                                      }
                                    ],
                                    "id": 5815,
                                    "name": "IndexAccess",
                                    "src": "6141:22:11"
                                  }
                                ],
                                "id": 5816,
                                "name": "MemberAccess",
                                "src": "6141:39:11"
                              }
                            ],
                            "id": 5817,
                            "name": "MemberAccess",
                            "src": "6141:44:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5791,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 5818,
                            "name": "Identifier",
                            "src": "6186:12:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5789,
                              "type": "int256",
                              "value": "_amount"
                            },
                            "id": 5819,
                            "name": "Identifier",
                            "src": "6200:7:11"
                          }
                        ],
                        "id": 5820,
                        "name": "FunctionCall",
                        "src": "6141:67:11"
                      }
                    ],
                    "id": 5821,
                    "name": "Return",
                    "src": "6134:74:11"
                  }
                ],
                "id": 5822,
                "name": "Block",
                "src": "6057:158:11"
              }
            ],
            "id": 5823,
            "name": "FunctionDefinition",
            "src": "5858:357:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "mintTokens",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": 4995,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amount",
                      "scope": 5859,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 5824,
                        "name": "ElementaryTypeName",
                        "src": "6471:7:11"
                      }
                    ],
                    "id": 5825,
                    "name": "VariableDeclaration",
                    "src": "6471:15:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_beneficiary",
                      "scope": 5859,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5826,
                        "name": "ElementaryTypeName",
                        "src": "6488:7:11"
                      }
                    ],
                    "id": 5827,
                    "name": "VariableDeclaration",
                    "src": "6488:20:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5859,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5828,
                        "name": "ElementaryTypeName",
                        "src": "6509:7:11"
                      }
                    ],
                    "id": 5829,
                    "name": "VariableDeclaration",
                    "src": "6509:15:11"
                  }
                ],
                "id": 5830,
                "name": "ParameterList",
                "src": "6470:55:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5859,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5838,
                        "name": "ElementaryTypeName",
                        "src": "6633:4:11"
                      }
                    ],
                    "id": 5839,
                    "name": "VariableDeclaration",
                    "src": "6633:4:11"
                  }
                ],
                "id": 5840,
                "name": "ParameterList",
                "src": "6632:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5628,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5831,
                    "name": "Identifier",
                    "src": "6541:20:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5829,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5832,
                    "name": "Identifier",
                    "src": "6562:7:11"
                  }
                ],
                "id": 5833,
                "name": "ModifierInvocation",
                "src": "6541:29:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5787,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5834,
                    "name": "Identifier",
                    "src": "6575:23:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "6d696e74546f6b656e73",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"mintTokens\"",
                      "value": "mintTokens"
                    },
                    "id": 5835,
                    "name": "Literal",
                    "src": "6599:12:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5829,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5836,
                    "name": "Identifier",
                    "src": "6612:7:11"
                  }
                ],
                "id": 5837,
                "name": "ModifierInvocation",
                "src": "6575:45:11"
              },
              {
                "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": 5422,
                              "type": "function (address,address,uint256,address)",
                              "value": "MintTokens"
                            },
                            "id": 5841,
                            "name": "Identifier",
                            "src": "6653:10:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5842,
                                "name": "Identifier",
                                "src": "6664:3:11"
                              }
                            ],
                            "id": 5843,
                            "name": "MemberAccess",
                            "src": "6664:10:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5827,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 5844,
                            "name": "Identifier",
                            "src": "6676:12:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5825,
                              "type": "uint256",
                              "value": "_amount"
                            },
                            "id": 5845,
                            "name": "Identifier",
                            "src": "6690:7:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5829,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5846,
                            "name": "Identifier",
                            "src": "6698:7:11"
                          }
                        ],
                        "id": 5847,
                        "name": "FunctionCall",
                        "src": "6653:53:11"
                      }
                    ],
                    "id": 5848,
                    "name": "ExpressionStatement",
                    "src": "6653:53:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5840
                    },
                    "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": 11733,
                              "type": "function (address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "nativeToken",
                                  "referencedDeclaration": 5378,
                                  "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": 5398,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5849,
                                        "name": "Identifier",
                                        "src": "6723:13:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5829,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5850,
                                        "name": "Identifier",
                                        "src": "6737:7:11"
                                      }
                                    ],
                                    "id": 5851,
                                    "name": "IndexAccess",
                                    "src": "6723:22:11"
                                  }
                                ],
                                "id": 5852,
                                "name": "MemberAccess",
                                "src": "6723:34:11"
                              }
                            ],
                            "id": 5853,
                            "name": "MemberAccess",
                            "src": "6723:39:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5827,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 5854,
                            "name": "Identifier",
                            "src": "6763:12:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5825,
                              "type": "uint256",
                              "value": "_amount"
                            },
                            "id": 5855,
                            "name": "Identifier",
                            "src": "6777:7:11"
                          }
                        ],
                        "id": 5856,
                        "name": "FunctionCall",
                        "src": "6723:62:11"
                      }
                    ],
                    "id": 5857,
                    "name": "Return",
                    "src": "6716:69:11"
                  }
                ],
                "id": 5858,
                "name": "Block",
                "src": "6643:149:11"
              }
            ],
            "id": 5859,
            "name": "FunctionDefinition",
            "src": "6451:341:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "registerScheme",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": 5008,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 5962,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5860,
                        "name": "ElementaryTypeName",
                        "src": "7148:7:11"
                      }
                    ],
                    "id": 5861,
                    "name": "VariableDeclaration",
                    "src": "7148:15:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_paramsHash",
                      "scope": 5962,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 5862,
                        "name": "ElementaryTypeName",
                        "src": "7165:7:11"
                      }
                    ],
                    "id": 5863,
                    "name": "VariableDeclaration",
                    "src": "7165:19:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_permissions",
                      "scope": 5962,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes4",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes4",
                          "type": "bytes4"
                        },
                        "id": 5864,
                        "name": "ElementaryTypeName",
                        "src": "7186:6:11"
                      }
                    ],
                    "id": 5865,
                    "name": "VariableDeclaration",
                    "src": "7186:19:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5962,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5866,
                        "name": "ElementaryTypeName",
                        "src": "7206:7:11"
                      }
                    ],
                    "id": 5867,
                    "name": "VariableDeclaration",
                    "src": "7206:15:11"
                  }
                ],
                "id": 5868,
                "name": "ParameterList",
                "src": "7147:75:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5962,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5876,
                        "name": "ElementaryTypeName",
                        "src": "7336:4:11"
                      }
                    ],
                    "id": 5877,
                    "name": "VariableDeclaration",
                    "src": "7336:4:11"
                  }
                ],
                "id": 5878,
                "name": "ParameterList",
                "src": "7335:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5653,
                      "type": "modifier (address)",
                      "value": "onlyRegisteringSchemes"
                    },
                    "id": 5869,
                    "name": "Identifier",
                    "src": "7238:22:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5867,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5870,
                    "name": "Identifier",
                    "src": "7261:7:11"
                  }
                ],
                "id": 5871,
                "name": "ModifierInvocation",
                "src": "7238:31:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5787,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5872,
                    "name": "Identifier",
                    "src": "7274:23:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "7265676973746572536368656d65",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"registerScheme\"",
                      "value": "registerScheme"
                    },
                    "id": 5873,
                    "name": "Literal",
                    "src": "7298:16:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5867,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5874,
                    "name": "Identifier",
                    "src": "7315:7:11"
                  }
                ],
                "id": 5875,
                "name": "ModifierInvocation",
                "src": "7274:49:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        5880
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "schemePermission",
                          "scope": 5962,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes4",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes4",
                              "type": "bytes4"
                            },
                            "id": 5879,
                            "name": "ElementaryTypeName",
                            "src": "7356:6:11"
                          }
                        ],
                        "id": 5880,
                        "name": "VariableDeclaration",
                        "src": "7356:23:11"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "permissions",
                          "referencedDeclaration": 5365,
                          "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": 5384,
                                  "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": 5398,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5881,
                                        "name": "Identifier",
                                        "src": "7382:13:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5867,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5882,
                                        "name": "Identifier",
                                        "src": "7396:7:11"
                                      }
                                    ],
                                    "id": 5883,
                                    "name": "IndexAccess",
                                    "src": "7382:22:11"
                                  }
                                ],
                                "id": 5884,
                                "name": "MemberAccess",
                                "src": "7382:30:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5861,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5885,
                                "name": "Identifier",
                                "src": "7413:7:11"
                              }
                            ],
                            "id": 5886,
                            "name": "IndexAccess",
                            "src": "7382:39:11"
                          }
                        ],
                        "id": 5887,
                        "name": "MemberAccess",
                        "src": "7382:51:11"
                      }
                    ],
                    "id": 5888,
                    "name": "VariableDeclarationStatement",
                    "src": "7356:77:11"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        5890
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "senderPermission",
                          "scope": 5962,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes4",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes4",
                              "type": "bytes4"
                            },
                            "id": 5889,
                            "name": "ElementaryTypeName",
                            "src": "7443:6:11"
                          }
                        ],
                        "id": 5890,
                        "name": "VariableDeclaration",
                        "src": "7443:23:11"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "permissions",
                          "referencedDeclaration": 5365,
                          "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": 5384,
                                  "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": 5398,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5891,
                                        "name": "Identifier",
                                        "src": "7469:13:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5867,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5892,
                                        "name": "Identifier",
                                        "src": "7483:7:11"
                                      }
                                    ],
                                    "id": 5893,
                                    "name": "IndexAccess",
                                    "src": "7469:22:11"
                                  }
                                ],
                                "id": 5894,
                                "name": "MemberAccess",
                                "src": "7469:30:11"
                              },
                              {
                                "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": 12011,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 5895,
                                    "name": "Identifier",
                                    "src": "7500:3:11"
                                  }
                                ],
                                "id": 5896,
                                "name": "MemberAccess",
                                "src": "7500:10:11"
                              }
                            ],
                            "id": 5897,
                            "name": "IndexAccess",
                            "src": "7469:42:11"
                          }
                        ],
                        "id": 5898,
                        "name": "MemberAccess",
                        "src": "7469:54:11"
                      }
                    ],
                    "id": 5899,
                    "name": "VariableDeclarationStatement",
                    "src": "7443:80:11"
                  },
                  {
                    "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": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5900,
                            "name": "Identifier",
                            "src": "7813:7:11"
                          },
                          {
                            "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": 5901,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "7821:6:11"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "hexvalue": "3135",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "subdenomination": null,
                                              "token": "number",
                                              "type": "int_const 15",
                                              "value": "15"
                                            },
                                            "id": 5902,
                                            "name": "Literal",
                                            "src": "7828:2:11"
                                          }
                                        ],
                                        "id": 5903,
                                        "name": "FunctionCall",
                                        "src": "7821:10:11"
                                      },
                                      {
                                        "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": 5865,
                                                  "type": "bytes4",
                                                  "value": "_permissions"
                                                },
                                                "id": 5904,
                                                "name": "Identifier",
                                                "src": "7833:12:11"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5880,
                                                  "type": "bytes4",
                                                  "value": "schemePermission"
                                                },
                                                "id": 5905,
                                                "name": "Identifier",
                                                "src": "7846:16:11"
                                              }
                                            ],
                                            "id": 5906,
                                            "name": "BinaryOperation",
                                            "src": "7833:29:11"
                                          }
                                        ],
                                        "id": 5907,
                                        "name": "TupleExpression",
                                        "src": "7832:31:11"
                                      }
                                    ],
                                    "id": 5908,
                                    "name": "BinaryOperation",
                                    "src": "7821:42:11"
                                  },
                                  {
                                    "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": 5890,
                                              "type": "bytes4",
                                              "value": "senderPermission"
                                            },
                                            "id": 5909,
                                            "name": "Identifier",
                                            "src": "7866:16:11"
                                          }
                                        ],
                                        "id": 5910,
                                        "name": "UnaryOperation",
                                        "src": "7865:17:11"
                                      }
                                    ],
                                    "id": 5911,
                                    "name": "TupleExpression",
                                    "src": "7864:19:11"
                                  }
                                ],
                                "id": 5912,
                                "name": "BinaryOperation",
                                "src": "7821:62:11"
                              },
                              {
                                "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": 5913,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "7887:6:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5914,
                                    "name": "Literal",
                                    "src": "7894:1:11"
                                  }
                                ],
                                "id": 5915,
                                "name": "FunctionCall",
                                "src": "7887:9:11"
                              }
                            ],
                            "id": 5916,
                            "name": "BinaryOperation",
                            "src": "7821:75:11"
                          }
                        ],
                        "id": 5917,
                        "name": "FunctionCall",
                        "src": "7813:84:11"
                      }
                    ],
                    "id": 5918,
                    "name": "ExpressionStatement",
                    "src": "7813:84:11"
                  },
                  {
                    "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": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5919,
                            "name": "Identifier",
                            "src": "7992:7:11"
                          },
                          {
                            "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": 5920,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "8000:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "3135",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 15",
                                          "value": "15"
                                        },
                                        "id": 5921,
                                        "name": "Literal",
                                        "src": "8007:2:11"
                                      }
                                    ],
                                    "id": 5922,
                                    "name": "FunctionCall",
                                    "src": "8000:10:11"
                                  },
                                  {
                                    "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": 5880,
                                              "type": "bytes4",
                                              "value": "schemePermission"
                                            },
                                            "id": 5923,
                                            "name": "Identifier",
                                            "src": "8012:16:11"
                                          },
                                          {
                                            "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": 5890,
                                                      "type": "bytes4",
                                                      "value": "senderPermission"
                                                    },
                                                    "id": 5924,
                                                    "name": "Identifier",
                                                    "src": "8031:16:11"
                                                  }
                                                ],
                                                "id": 5925,
                                                "name": "UnaryOperation",
                                                "src": "8030:17:11"
                                              }
                                            ],
                                            "id": 5926,
                                            "name": "TupleExpression",
                                            "src": "8029:19:11"
                                          }
                                        ],
                                        "id": 5927,
                                        "name": "BinaryOperation",
                                        "src": "8012:36:11"
                                      }
                                    ],
                                    "id": 5928,
                                    "name": "TupleExpression",
                                    "src": "8011:38:11"
                                  }
                                ],
                                "id": 5929,
                                "name": "BinaryOperation",
                                "src": "8000:49:11"
                              },
                              {
                                "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": 5930,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "8053:6:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5931,
                                    "name": "Literal",
                                    "src": "8060:1:11"
                                  }
                                ],
                                "id": 5932,
                                "name": "FunctionCall",
                                "src": "8053:9:11"
                              }
                            ],
                            "id": 5933,
                            "name": "BinaryOperation",
                            "src": "8000:62:11"
                          }
                        ],
                        "id": 5934,
                        "name": "FunctionCall",
                        "src": "7992:71:11"
                      }
                    ],
                    "id": 5935,
                    "name": "ExpressionStatement",
                    "src": "7992:71:11"
                  },
                  {
                    "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": 5384,
                                  "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": 5398,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5936,
                                        "name": "Identifier",
                                        "src": "8107:13:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5867,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5937,
                                        "name": "Identifier",
                                        "src": "8121:7:11"
                                      }
                                    ],
                                    "id": 5938,
                                    "name": "IndexAccess",
                                    "src": "8107:22:11"
                                  }
                                ],
                                "id": 5939,
                                "name": "MemberAccess",
                                "src": "8107:30:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5861,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5940,
                                "name": "Identifier",
                                "src": "8138:7:11"
                              }
                            ],
                            "id": 5941,
                            "name": "IndexAccess",
                            "src": "8107:39:11"
                          },
                          {
                            "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": 5366,
                                  "type": "type(struct UController.Scheme storage pointer)",
                                  "value": "Scheme"
                                },
                                "id": 5942,
                                "name": "Identifier",
                                "src": "8149:6:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5863,
                                  "type": "bytes32",
                                  "value": "_paramsHash"
                                },
                                "id": 5943,
                                "name": "Identifier",
                                "src": "8168:11:11"
                              },
                              {
                                "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": 5865,
                                      "type": "bytes4",
                                      "value": "_permissions"
                                    },
                                    "id": 5944,
                                    "name": "Identifier",
                                    "src": "8192:12:11"
                                  },
                                  {
                                    "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": 5945,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "8205:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 5946,
                                        "name": "Literal",
                                        "src": "8212:1:11"
                                      }
                                    ],
                                    "id": 5947,
                                    "name": "FunctionCall",
                                    "src": "8205:9:11"
                                  }
                                ],
                                "id": 5948,
                                "name": "BinaryOperation",
                                "src": "8192:22:11"
                              }
                            ],
                            "id": 5949,
                            "name": "FunctionCall",
                            "src": "8149:67:11"
                          }
                        ],
                        "id": 5950,
                        "name": "Assignment",
                        "src": "8107:109:11"
                      }
                    ],
                    "id": 5951,
                    "name": "ExpressionStatement",
                    "src": "8107:109:11"
                  },
                  {
                    "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": 5430,
                              "type": "function (address,address,address)",
                              "value": "RegisterScheme"
                            },
                            "id": 5952,
                            "name": "Identifier",
                            "src": "8226:14:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5953,
                                "name": "Identifier",
                                "src": "8241:3:11"
                              }
                            ],
                            "id": 5954,
                            "name": "MemberAccess",
                            "src": "8241:10:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5861,
                              "type": "address",
                              "value": "_scheme"
                            },
                            "id": 5955,
                            "name": "Identifier",
                            "src": "8253:7:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5867,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5956,
                            "name": "Identifier",
                            "src": "8262:7:11"
                          }
                        ],
                        "id": 5957,
                        "name": "FunctionCall",
                        "src": "8226:44:11"
                      }
                    ],
                    "id": 5958,
                    "name": "ExpressionStatement",
                    "src": "8226:44:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5878
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 5959,
                        "name": "Literal",
                        "src": "8287:4:11"
                      }
                    ],
                    "id": 5960,
                    "name": "Return",
                    "src": "8280:11:11"
                  }
                ],
                "id": 5961,
                "name": "Block",
                "src": "7346:952:11"
              }
            ],
            "id": 5962,
            "name": "FunctionDefinition",
            "src": "7124:1174:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "unregisterScheme",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": 5017,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 6043,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5963,
                        "name": "ElementaryTypeName",
                        "src": "8520:7:11"
                      }
                    ],
                    "id": 5964,
                    "name": "VariableDeclaration",
                    "src": "8520:15:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6043,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5965,
                        "name": "ElementaryTypeName",
                        "src": "8536:7:11"
                      }
                    ],
                    "id": 5966,
                    "name": "VariableDeclaration",
                    "src": "8536:15:11"
                  }
                ],
                "id": 5967,
                "name": "ParameterList",
                "src": "8519:33:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6043,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5975,
                        "name": "ElementaryTypeName",
                        "src": "8668:4:11"
                      }
                    ],
                    "id": 5976,
                    "name": "VariableDeclaration",
                    "src": "8668:4:11"
                  }
                ],
                "id": 5977,
                "name": "ParameterList",
                "src": "8667:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5653,
                      "type": "modifier (address)",
                      "value": "onlyRegisteringSchemes"
                    },
                    "id": 5968,
                    "name": "Identifier",
                    "src": "8568:22:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5966,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5969,
                    "name": "Identifier",
                    "src": "8591:7:11"
                  }
                ],
                "id": 5970,
                "name": "ModifierInvocation",
                "src": "8568:31:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5787,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5971,
                    "name": "Identifier",
                    "src": "8604:23:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "756e7265676973746572536368656d65",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"unregisterScheme\"",
                      "value": "unregisterScheme"
                    },
                    "id": 5972,
                    "name": "Literal",
                    "src": "8628:18:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5966,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5973,
                    "name": "Identifier",
                    "src": "8647:7:11"
                  }
                ],
                "id": 5974,
                "name": "ModifierInvocation",
                "src": "8604:51:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        5979
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "schemePermission",
                          "scope": 6043,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes4",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes4",
                              "type": "bytes4"
                            },
                            "id": 5978,
                            "name": "ElementaryTypeName",
                            "src": "8688:6:11"
                          }
                        ],
                        "id": 5979,
                        "name": "VariableDeclaration",
                        "src": "8688:23:11"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "permissions",
                          "referencedDeclaration": 5365,
                          "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": 5384,
                                  "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": 5398,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5980,
                                        "name": "Identifier",
                                        "src": "8714:13:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5966,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5981,
                                        "name": "Identifier",
                                        "src": "8728:7:11"
                                      }
                                    ],
                                    "id": 5982,
                                    "name": "IndexAccess",
                                    "src": "8714:22:11"
                                  }
                                ],
                                "id": 5983,
                                "name": "MemberAccess",
                                "src": "8714:30:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5964,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5984,
                                "name": "Identifier",
                                "src": "8745:7:11"
                              }
                            ],
                            "id": 5985,
                            "name": "IndexAccess",
                            "src": "8714:39:11"
                          }
                        ],
                        "id": 5986,
                        "name": "MemberAccess",
                        "src": "8714:51:11"
                      }
                    ],
                    "id": 5987,
                    "name": "VariableDeclarationStatement",
                    "src": "8688:77:11"
                  },
                  {
                    "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": 5979,
                                  "type": "bytes4",
                                  "value": "schemePermission"
                                },
                                "id": 5988,
                                "name": "Identifier",
                                "src": "8817:16:11"
                              },
                              {
                                "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": 5989,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "8834:6:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "31",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "1"
                                    },
                                    "id": 5990,
                                    "name": "Literal",
                                    "src": "8841:1:11"
                                  }
                                ],
                                "id": 5991,
                                "name": "FunctionCall",
                                "src": "8834:9:11"
                              }
                            ],
                            "id": 5992,
                            "name": "BinaryOperation",
                            "src": "8817:26:11"
                          },
                          {
                            "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": 5993,
                                "name": "ElementaryTypeNameExpression",
                                "src": "8847:6:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 5994,
                                "name": "Literal",
                                "src": "8854:1:11"
                              }
                            ],
                            "id": 5995,
                            "name": "FunctionCall",
                            "src": "8847:9:11"
                          }
                        ],
                        "id": 5996,
                        "name": "BinaryOperation",
                        "src": "8817:39:11"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 5977
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 5997,
                                "name": "Literal",
                                "src": "8879:5:11"
                              }
                            ],
                            "id": 5998,
                            "name": "Return",
                            "src": "8872:12:11"
                          }
                        ],
                        "id": 5999,
                        "name": "Block",
                        "src": "8858:39:11"
                      }
                    ],
                    "id": 6000,
                    "name": "IfStatement",
                    "src": "8813:84:11"
                  },
                  {
                    "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": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 6001,
                            "name": "Identifier",
                            "src": "8968:7:11"
                          },
                          {
                            "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": 6002,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "8976:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "3135",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 15",
                                          "value": "15"
                                        },
                                        "id": 6003,
                                        "name": "Literal",
                                        "src": "8983:2:11"
                                      }
                                    ],
                                    "id": 6004,
                                    "name": "FunctionCall",
                                    "src": "8976:10:11"
                                  },
                                  {
                                    "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": 5979,
                                              "type": "bytes4",
                                              "value": "schemePermission"
                                            },
                                            "id": 6005,
                                            "name": "Identifier",
                                            "src": "8988:16:11"
                                          },
                                          {
                                            "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": 5365,
                                                      "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": 5384,
                                                              "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": 5398,
                                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                                      "value": "organizations"
                                                                    },
                                                                    "id": 6006,
                                                                    "name": "Identifier",
                                                                    "src": "9007:13:11"
                                                                  },
                                                                  {
                                                                    "attributes": {
                                                                      "argumentTypes": null,
                                                                      "overloadedDeclarations": [
                                                                        null
                                                                      ],
                                                                      "referencedDeclaration": 5966,
                                                                      "type": "address",
                                                                      "value": "_avatar"
                                                                    },
                                                                    "id": 6007,
                                                                    "name": "Identifier",
                                                                    "src": "9021:7:11"
                                                                  }
                                                                ],
                                                                "id": 6008,
                                                                "name": "IndexAccess",
                                                                "src": "9007:22:11"
                                                              }
                                                            ],
                                                            "id": 6009,
                                                            "name": "MemberAccess",
                                                            "src": "9007:30:11"
                                                          },
                                                          {
                                                            "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": 12011,
                                                                  "type": "msg",
                                                                  "value": "msg"
                                                                },
                                                                "id": 6010,
                                                                "name": "Identifier",
                                                                "src": "9038:3:11"
                                                              }
                                                            ],
                                                            "id": 6011,
                                                            "name": "MemberAccess",
                                                            "src": "9038:10:11"
                                                          }
                                                        ],
                                                        "id": 6012,
                                                        "name": "IndexAccess",
                                                        "src": "9007:42:11"
                                                      }
                                                    ],
                                                    "id": 6013,
                                                    "name": "MemberAccess",
                                                    "src": "9007:54:11"
                                                  }
                                                ],
                                                "id": 6014,
                                                "name": "UnaryOperation",
                                                "src": "9006:55:11"
                                              }
                                            ],
                                            "id": 6015,
                                            "name": "TupleExpression",
                                            "src": "9005:57:11"
                                          }
                                        ],
                                        "id": 6016,
                                        "name": "BinaryOperation",
                                        "src": "8988:74:11"
                                      }
                                    ],
                                    "id": 6017,
                                    "name": "TupleExpression",
                                    "src": "8987:76:11"
                                  }
                                ],
                                "id": 6018,
                                "name": "BinaryOperation",
                                "src": "8976:87:11"
                              },
                              {
                                "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": 6019,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "9067:6:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 6020,
                                    "name": "Literal",
                                    "src": "9074:1:11"
                                  }
                                ],
                                "id": 6021,
                                "name": "FunctionCall",
                                "src": "9067:9:11"
                              }
                            ],
                            "id": 6022,
                            "name": "BinaryOperation",
                            "src": "8976:100:11"
                          }
                        ],
                        "id": 6023,
                        "name": "FunctionCall",
                        "src": "8968:109:11"
                      }
                    ],
                    "id": 6024,
                    "name": "ExpressionStatement",
                    "src": "8968:109:11"
                  },
                  {
                    "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": 5438,
                              "type": "function (address,address,address)",
                              "value": "UnregisterScheme"
                            },
                            "id": 6025,
                            "name": "Identifier",
                            "src": "9107:16:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 6026,
                                "name": "Identifier",
                                "src": "9124:3:11"
                              }
                            ],
                            "id": 6027,
                            "name": "MemberAccess",
                            "src": "9124:10:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5964,
                              "type": "address",
                              "value": "_scheme"
                            },
                            "id": 6028,
                            "name": "Identifier",
                            "src": "9136:7:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5966,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 6029,
                            "name": "Identifier",
                            "src": "9144:7:11"
                          }
                        ],
                        "id": 6030,
                        "name": "FunctionCall",
                        "src": "9107:45:11"
                      }
                    ],
                    "id": 6031,
                    "name": "ExpressionStatement",
                    "src": "9107:45:11"
                  },
                  {
                    "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": 5384,
                                  "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": 5398,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 6032,
                                        "name": "Identifier",
                                        "src": "9169:13:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5966,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 6033,
                                        "name": "Identifier",
                                        "src": "9183:7:11"
                                      }
                                    ],
                                    "id": 6034,
                                    "name": "IndexAccess",
                                    "src": "9169:22:11"
                                  }
                                ],
                                "id": 6035,
                                "name": "MemberAccess",
                                "src": "9169:30:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5964,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 6036,
                                "name": "Identifier",
                                "src": "9200:7:11"
                              }
                            ],
                            "id": 6037,
                            "name": "IndexAccess",
                            "src": "9169:39:11"
                          }
                        ],
                        "id": 6038,
                        "name": "UnaryOperation",
                        "src": "9162:46:11"
                      }
                    ],
                    "id": 6039,
                    "name": "ExpressionStatement",
                    "src": "9162:46:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5977
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 6040,
                        "name": "Literal",
                        "src": "9225:4:11"
                      }
                    ],
                    "id": 6041,
                    "name": "Return",
                    "src": "9218:11:11"
                  }
                ],
                "id": 6042,
                "name": "Block",
                "src": "8678:558:11"
              }
            ],
            "id": 6043,
            "name": "FunctionDefinition",
            "src": "8494:742:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "unregisterSelf",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": 5024,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6081,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6044,
                        "name": "ElementaryTypeName",
                        "src": "9419:7:11"
                      }
                    ],
                    "id": 6045,
                    "name": "VariableDeclaration",
                    "src": "9419:15:11"
                  }
                ],
                "id": 6046,
                "name": "ParameterList",
                "src": "9418:17:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6081,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6047,
                        "name": "ElementaryTypeName",
                        "src": "9451:4:11"
                      }
                    ],
                    "id": 6048,
                    "name": "VariableDeclaration",
                    "src": "9451:4:11"
                  }
                ],
                "id": 6049,
                "name": "ParameterList",
                "src": "9450:6:11"
              },
              {
                "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": [
                                    6108
                                  ],
                                  "referencedDeclaration": 6108,
                                  "type": "function (address,address) view returns (bool)",
                                  "value": "isSchemeRegistered"
                                },
                                "id": 6050,
                                "name": "Identifier",
                                "src": "9471:18:11"
                              },
                              {
                                "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": 12011,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 6051,
                                    "name": "Identifier",
                                    "src": "9490:3:11"
                                  }
                                ],
                                "id": 6052,
                                "name": "MemberAccess",
                                "src": "9490:10:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6045,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 6053,
                                "name": "Identifier",
                                "src": "9501:7:11"
                              }
                            ],
                            "id": 6054,
                            "name": "FunctionCall",
                            "src": "9471:38:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "66616c7365",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "false"
                            },
                            "id": 6055,
                            "name": "Literal",
                            "src": "9513:5:11"
                          }
                        ],
                        "id": 6056,
                        "name": "BinaryOperation",
                        "src": "9471:47:11"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 6049
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 6057,
                                "name": "Literal",
                                "src": "9541:5:11"
                              }
                            ],
                            "id": 6058,
                            "name": "Return",
                            "src": "9534:12:11"
                          }
                        ],
                        "id": 6059,
                        "name": "Block",
                        "src": "9520:37:11"
                      }
                    ],
                    "id": 6060,
                    "name": "IfStatement",
                    "src": "9467:90:11"
                  },
                  {
                    "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": 5384,
                                  "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": 5398,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 6061,
                                        "name": "Identifier",
                                        "src": "9573:13:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6045,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 6062,
                                        "name": "Identifier",
                                        "src": "9587:7:11"
                                      }
                                    ],
                                    "id": 6063,
                                    "name": "IndexAccess",
                                    "src": "9573:22:11"
                                  }
                                ],
                                "id": 6064,
                                "name": "MemberAccess",
                                "src": "9573:30:11"
                              },
                              {
                                "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": 12011,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 6065,
                                    "name": "Identifier",
                                    "src": "9604:3:11"
                                  }
                                ],
                                "id": 6066,
                                "name": "MemberAccess",
                                "src": "9604:10:11"
                              }
                            ],
                            "id": 6067,
                            "name": "IndexAccess",
                            "src": "9573:42:11"
                          }
                        ],
                        "id": 6068,
                        "name": "UnaryOperation",
                        "src": "9566:49:11"
                      }
                    ],
                    "id": 6069,
                    "name": "ExpressionStatement",
                    "src": "9566:49:11"
                  },
                  {
                    "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": 5438,
                              "type": "function (address,address,address)",
                              "value": "UnregisterScheme"
                            },
                            "id": 6070,
                            "name": "Identifier",
                            "src": "9625:16:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 6071,
                                "name": "Identifier",
                                "src": "9642:3:11"
                              }
                            ],
                            "id": 6072,
                            "name": "MemberAccess",
                            "src": "9642:10:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 6073,
                                "name": "Identifier",
                                "src": "9654:3:11"
                              }
                            ],
                            "id": 6074,
                            "name": "MemberAccess",
                            "src": "9654:10:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6045,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 6075,
                            "name": "Identifier",
                            "src": "9665:7:11"
                          }
                        ],
                        "id": 6076,
                        "name": "FunctionCall",
                        "src": "9625:48:11"
                      }
                    ],
                    "id": 6077,
                    "name": "ExpressionStatement",
                    "src": "9625:48:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 6049
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 6078,
                        "name": "Literal",
                        "src": "9690:4:11"
                      }
                    ],
                    "id": 6079,
                    "name": "Return",
                    "src": "9683:11:11"
                  }
                ],
                "id": 6080,
                "name": "Block",
                "src": "9457:244:11"
              }
            ],
            "id": 6081,
            "name": "FunctionDefinition",
            "src": "9395:306:11"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "isSchemeRegistered",
              "payable": false,
              "scope": 6673,
              "stateMutability": "view",
              "superFunction": 5033,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 6108,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6082,
                        "name": "ElementaryTypeName",
                        "src": "9736:7:11"
                      }
                    ],
                    "id": 6083,
                    "name": "VariableDeclaration",
                    "src": "9736:15:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6108,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6084,
                        "name": "ElementaryTypeName",
                        "src": "9752:7:11"
                      }
                    ],
                    "id": 6085,
                    "name": "VariableDeclaration",
                    "src": "9752:15:11"
                  }
                ],
                "id": 6086,
                "name": "ParameterList",
                "src": "9734:34:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6108,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6087,
                        "name": "ElementaryTypeName",
                        "src": "9793:4:11"
                      }
                    ],
                    "id": 6088,
                    "name": "VariableDeclaration",
                    "src": "9793:4:11"
                  }
                ],
                "id": 6089,
                "name": "ParameterList",
                "src": "9792:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 6089
                    },
                    "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": 5365,
                                      "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": 5384,
                                              "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": 5398,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 6090,
                                                    "name": "Identifier",
                                                    "src": "9817:13:11"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 6085,
                                                      "type": "address",
                                                      "value": "_avatar"
                                                    },
                                                    "id": 6091,
                                                    "name": "Identifier",
                                                    "src": "9831:7:11"
                                                  }
                                                ],
                                                "id": 6092,
                                                "name": "IndexAccess",
                                                "src": "9817:22:11"
                                              }
                                            ],
                                            "id": 6093,
                                            "name": "MemberAccess",
                                            "src": "9817:30:11"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6083,
                                              "type": "address",
                                              "value": "_scheme"
                                            },
                                            "id": 6094,
                                            "name": "Identifier",
                                            "src": "9848:7:11"
                                          }
                                        ],
                                        "id": 6095,
                                        "name": "IndexAccess",
                                        "src": "9817:39:11"
                                      }
                                    ],
                                    "id": 6096,
                                    "name": "MemberAccess",
                                    "src": "9817:51:11"
                                  },
                                  {
                                    "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": 6097,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "9869:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 6098,
                                        "name": "Literal",
                                        "src": "9876:1:11"
                                      }
                                    ],
                                    "id": 6099,
                                    "name": "FunctionCall",
                                    "src": "9869:9:11"
                                  }
                                ],
                                "id": 6100,
                                "name": "BinaryOperation",
                                "src": "9817:61:11"
                              },
                              {
                                "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": 6101,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "9882:6:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 6102,
                                    "name": "Literal",
                                    "src": "9889:1:11"
                                  }
                                ],
                                "id": 6103,
                                "name": "FunctionCall",
                                "src": "9882:9:11"
                              }
                            ],
                            "id": 6104,
                            "name": "BinaryOperation",
                            "src": "9817:74:11"
                          }
                        ],
                        "id": 6105,
                        "name": "TupleExpression",
                        "src": "9816:76:11"
                      }
                    ],
                    "id": 6106,
                    "name": "Return",
                    "src": "9809:83:11"
                  }
                ],
                "id": 6107,
                "name": "Block",
                "src": "9799:100:11"
              }
            ],
            "id": 6108,
            "name": "FunctionDefinition",
            "src": "9707:192:11"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getSchemeParameters",
              "payable": false,
              "scope": 6673,
              "stateMutability": "view",
              "superFunction": 5042,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 6126,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6109,
                        "name": "ElementaryTypeName",
                        "src": "9934:7:11"
                      }
                    ],
                    "id": 6110,
                    "name": "VariableDeclaration",
                    "src": "9934:15:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6126,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6111,
                        "name": "ElementaryTypeName",
                        "src": "9950:7:11"
                      }
                    ],
                    "id": 6112,
                    "name": "VariableDeclaration",
                    "src": "9950:15:11"
                  }
                ],
                "id": 6113,
                "name": "ParameterList",
                "src": "9933:33:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6126,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 6114,
                        "name": "ElementaryTypeName",
                        "src": "9991:7:11"
                      }
                    ],
                    "id": 6115,
                    "name": "VariableDeclaration",
                    "src": "9991:7:11"
                  }
                ],
                "id": 6116,
                "name": "ParameterList",
                "src": "9990:9:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 6116
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "paramsHash",
                          "referencedDeclaration": 5363,
                          "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": 5384,
                                  "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": 5398,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 6117,
                                        "name": "Identifier",
                                        "src": "10017:13:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6112,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 6118,
                                        "name": "Identifier",
                                        "src": "10031:7:11"
                                      }
                                    ],
                                    "id": 6119,
                                    "name": "IndexAccess",
                                    "src": "10017:22:11"
                                  }
                                ],
                                "id": 6120,
                                "name": "MemberAccess",
                                "src": "10017:30:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6110,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 6121,
                                "name": "Identifier",
                                "src": "10048:7:11"
                              }
                            ],
                            "id": 6122,
                            "name": "IndexAccess",
                            "src": "10017:39:11"
                          }
                        ],
                        "id": 6123,
                        "name": "MemberAccess",
                        "src": "10017:50:11"
                      }
                    ],
                    "id": 6124,
                    "name": "Return",
                    "src": "10010:57:11"
                  }
                ],
                "id": 6125,
                "name": "Block",
                "src": "10000:74:11"
              }
            ],
            "id": 6126,
            "name": "FunctionDefinition",
            "src": "9905:169:11"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getSchemePermissions",
              "payable": false,
              "scope": 6673,
              "stateMutability": "view",
              "superFunction": 5051,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 6144,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6127,
                        "name": "ElementaryTypeName",
                        "src": "10110:7:11"
                      }
                    ],
                    "id": 6128,
                    "name": "VariableDeclaration",
                    "src": "10110:15:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6144,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6129,
                        "name": "ElementaryTypeName",
                        "src": "10126:7:11"
                      }
                    ],
                    "id": 6130,
                    "name": "VariableDeclaration",
                    "src": "10126:15:11"
                  }
                ],
                "id": 6131,
                "name": "ParameterList",
                "src": "10109:33:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6144,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes4",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes4",
                          "type": "bytes4"
                        },
                        "id": 6132,
                        "name": "ElementaryTypeName",
                        "src": "10167:6:11"
                      }
                    ],
                    "id": 6133,
                    "name": "VariableDeclaration",
                    "src": "10167:6:11"
                  }
                ],
                "id": 6134,
                "name": "ParameterList",
                "src": "10166:8:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 6134
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "permissions",
                          "referencedDeclaration": 5365,
                          "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": 5384,
                                  "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": 5398,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 6135,
                                        "name": "Identifier",
                                        "src": "10192:13:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6130,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 6136,
                                        "name": "Identifier",
                                        "src": "10206:7:11"
                                      }
                                    ],
                                    "id": 6137,
                                    "name": "IndexAccess",
                                    "src": "10192:22:11"
                                  }
                                ],
                                "id": 6138,
                                "name": "MemberAccess",
                                "src": "10192:30:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6128,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 6139,
                                "name": "Identifier",
                                "src": "10223:7:11"
                              }
                            ],
                            "id": 6140,
                            "name": "IndexAccess",
                            "src": "10192:39:11"
                          }
                        ],
                        "id": 6141,
                        "name": "MemberAccess",
                        "src": "10192:51:11"
                      }
                    ],
                    "id": 6142,
                    "name": "Return",
                    "src": "10185:58:11"
                  }
                ],
                "id": 6143,
                "name": "Block",
                "src": "10175:75:11"
              }
            ],
            "id": 6144,
            "name": "FunctionDefinition",
            "src": "10080:170:11"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "globalConstraintsCount",
              "payable": false,
              "scope": 6673,
              "stateMutability": "view",
              "superFunction": 5058,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6158,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6145,
                        "name": "ElementaryTypeName",
                        "src": "10313:7:11"
                      }
                    ],
                    "id": 6146,
                    "name": "VariableDeclaration",
                    "src": "10313:15:11"
                  }
                ],
                "id": 6147,
                "name": "ParameterList",
                "src": "10312:17:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6158,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 6148,
                        "name": "ElementaryTypeName",
                        "src": "10354:4:11"
                      }
                    ],
                    "id": 6149,
                    "name": "VariableDeclaration",
                    "src": "10354:4:11"
                  }
                ],
                "id": 6150,
                "name": "ParameterList",
                "src": "10353:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 6150
                    },
                    "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": 5387,
                              "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": 5398,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 6151,
                                    "name": "Identifier",
                                    "src": "10377:13:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6146,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 6152,
                                    "name": "Identifier",
                                    "src": "10391:7:11"
                                  }
                                ],
                                "id": 6153,
                                "name": "IndexAccess",
                                "src": "10377:22:11"
                              }
                            ],
                            "id": 6154,
                            "name": "MemberAccess",
                            "src": "10377:40:11"
                          }
                        ],
                        "id": 6155,
                        "name": "MemberAccess",
                        "src": "10377:47:11"
                      }
                    ],
                    "id": 6156,
                    "name": "Return",
                    "src": "10370:54:11"
                  }
                ],
                "id": 6157,
                "name": "Block",
                "src": "10360:71:11"
              }
            ],
            "id": 6158,
            "name": "FunctionDefinition",
            "src": "10281:150:11"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "isGlobalConstraintRegistered",
              "payable": false,
              "scope": 6673,
              "stateMutability": "view",
              "superFunction": 5067,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_globalConstraint",
                      "scope": 6176,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6159,
                        "name": "ElementaryTypeName",
                        "src": "10475:7:11"
                      }
                    ],
                    "id": 6160,
                    "name": "VariableDeclaration",
                    "src": "10475:25:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6176,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6161,
                        "name": "ElementaryTypeName",
                        "src": "10501:7:11"
                      }
                    ],
                    "id": 6162,
                    "name": "VariableDeclaration",
                    "src": "10501:15:11"
                  }
                ],
                "id": 6163,
                "name": "ParameterList",
                "src": "10474:43:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6176,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6164,
                        "name": "ElementaryTypeName",
                        "src": "10542:4:11"
                      }
                    ],
                    "id": 6165,
                    "name": "VariableDeclaration",
                    "src": "10542:4:11"
                  }
                ],
                "id": 6166,
                "name": "ParameterList",
                "src": "10541:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 6166
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "register",
                          "referencedDeclaration": 5373,
                          "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": 5391,
                                  "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": 5398,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 6167,
                                        "name": "Identifier",
                                        "src": "10565:13:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6162,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 6168,
                                        "name": "Identifier",
                                        "src": "10579:7:11"
                                      }
                                    ],
                                    "id": 6169,
                                    "name": "IndexAccess",
                                    "src": "10565:22:11"
                                  }
                                ],
                                "id": 6170,
                                "name": "MemberAccess",
                                "src": "10565:48:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6160,
                                  "type": "address",
                                  "value": "_globalConstraint"
                                },
                                "id": 6171,
                                "name": "Identifier",
                                "src": "10614:17:11"
                              }
                            ],
                            "id": 6172,
                            "name": "IndexAccess",
                            "src": "10565:67:11"
                          }
                        ],
                        "id": 6173,
                        "name": "MemberAccess",
                        "src": "10565:76:11"
                      }
                    ],
                    "id": 6174,
                    "name": "Return",
                    "src": "10558:83:11"
                  }
                ],
                "id": 6175,
                "name": "Block",
                "src": "10548:100:11"
              }
            ],
            "id": 6176,
            "name": "FunctionDefinition",
            "src": "10437:211:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "addGlobalConstraint",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": 5078,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_globalConstraint",
                      "scope": 6252,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6177,
                        "name": "ElementaryTypeName",
                        "src": "10973:7:11"
                      }
                    ],
                    "id": 6178,
                    "name": "VariableDeclaration",
                    "src": "10973:25:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_params",
                      "scope": 6252,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 6179,
                        "name": "ElementaryTypeName",
                        "src": "11000:7:11"
                      }
                    ],
                    "id": 6180,
                    "name": "VariableDeclaration",
                    "src": "11000:15:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6252,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6181,
                        "name": "ElementaryTypeName",
                        "src": "11016:7:11"
                      }
                    ],
                    "id": 6182,
                    "name": "VariableDeclaration",
                    "src": "11016:15:11"
                  }
                ],
                "id": 6183,
                "name": "ParameterList",
                "src": "10972:60:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6252,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6187,
                        "name": "ElementaryTypeName",
                        "src": "11089:4:11"
                      }
                    ],
                    "id": 6188,
                    "name": "VariableDeclaration",
                    "src": "11089:4:11"
                  }
                ],
                "id": 6189,
                "name": "ParameterList",
                "src": "11088:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5678,
                      "type": "modifier (address)",
                      "value": "onlyGlobalConstraintsScheme"
                    },
                    "id": 6184,
                    "name": "Identifier",
                    "src": "11044:27:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6182,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6185,
                    "name": "Identifier",
                    "src": "11072:7:11"
                  }
                ],
                "id": 6186,
                "name": "ModifierInvocation",
                "src": "11044:36:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        6191
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "organization",
                          "scope": 6252,
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "type": "struct UController.Organization storage pointer",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Organization",
                              "referencedDeclaration": 5394,
                              "type": "struct UController.Organization storage pointer"
                            },
                            "id": 6190,
                            "name": "UserDefinedTypeName",
                            "src": "11109:12:11"
                          }
                        ],
                        "id": 6191,
                        "name": "VariableDeclaration",
                        "src": "11109:33:11"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct UController.Organization storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5398,
                              "type": "mapping(address => struct UController.Organization storage ref)",
                              "value": "organizations"
                            },
                            "id": 6192,
                            "name": "Identifier",
                            "src": "11145:13:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6182,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 6193,
                            "name": "Identifier",
                            "src": "11159:7:11"
                          }
                        ],
                        "id": 6194,
                        "name": "IndexAccess",
                        "src": "11145:22:11"
                      }
                    ],
                    "id": 6195,
                    "name": "VariableDeclarationStatement",
                    "src": "11109:58:11"
                  },
                  {
                    "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": 5373,
                              "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": 5391,
                                      "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6191,
                                          "type": "struct UController.Organization storage pointer",
                                          "value": "organization"
                                        },
                                        "id": 6196,
                                        "name": "Identifier",
                                        "src": "11182:12:11"
                                      }
                                    ],
                                    "id": 6197,
                                    "name": "MemberAccess",
                                    "src": "11182:38:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6178,
                                      "type": "address",
                                      "value": "_globalConstraint"
                                    },
                                    "id": 6198,
                                    "name": "Identifier",
                                    "src": "11221:17:11"
                                  }
                                ],
                                "id": 6199,
                                "name": "IndexAccess",
                                "src": "11182:57:11"
                              }
                            ],
                            "id": 6200,
                            "name": "MemberAccess",
                            "src": "11182:66:11"
                          }
                        ],
                        "id": 6201,
                        "name": "UnaryOperation",
                        "src": "11181:67:11"
                      },
                      {
                        "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_$5371_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": 5387,
                                          "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6191,
                                              "type": "struct UController.Organization storage pointer",
                                              "value": "organization"
                                            },
                                            "id": 6202,
                                            "name": "Identifier",
                                            "src": "11264:12:11"
                                          }
                                        ],
                                        "id": 6205,
                                        "name": "MemberAccess",
                                        "src": "11264:30:11"
                                      }
                                    ],
                                    "id": 6206,
                                    "name": "MemberAccess",
                                    "src": "11264:35:11"
                                  },
                                  {
                                    "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": 5371,
                                          "type": "type(struct UController.GlobalConstraint storage pointer)",
                                          "value": "GlobalConstraint"
                                        },
                                        "id": 6207,
                                        "name": "Identifier",
                                        "src": "11300:16:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6178,
                                          "type": "address",
                                          "value": "_globalConstraint"
                                        },
                                        "id": 6208,
                                        "name": "Identifier",
                                        "src": "11317:17:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6180,
                                          "type": "bytes32",
                                          "value": "_params"
                                        },
                                        "id": 6209,
                                        "name": "Identifier",
                                        "src": "11335:7:11"
                                      }
                                    ],
                                    "id": 6210,
                                    "name": "FunctionCall",
                                    "src": "11300:43:11"
                                  }
                                ],
                                "id": 6211,
                                "name": "FunctionCall",
                                "src": "11264:80:11"
                              }
                            ],
                            "id": 6212,
                            "name": "ExpressionStatement",
                            "src": "11264:80:11"
                          },
                          {
                            "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": 5391,
                                          "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6191,
                                              "type": "struct UController.Organization storage pointer",
                                              "value": "organization"
                                            },
                                            "id": 6213,
                                            "name": "Identifier",
                                            "src": "11358:12:11"
                                          }
                                        ],
                                        "id": 6216,
                                        "name": "MemberAccess",
                                        "src": "11358:38:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6178,
                                          "type": "address",
                                          "value": "_globalConstraint"
                                        },
                                        "id": 6215,
                                        "name": "Identifier",
                                        "src": "11397:17:11"
                                      }
                                    ],
                                    "id": 6217,
                                    "name": "IndexAccess",
                                    "src": "11358:57:11"
                                  },
                                  {
                                    "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": 5376,
                                          "type": "type(struct UController.GlobalConstraintRegister storage pointer)",
                                          "value": "GlobalConstraintRegister"
                                        },
                                        "id": 6218,
                                        "name": "Identifier",
                                        "src": "11418:24:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "74727565",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "bool",
                                          "type": "bool",
                                          "value": "true"
                                        },
                                        "id": 6219,
                                        "name": "Literal",
                                        "src": "11443:4:11"
                                      },
                                      {
                                        "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": 5387,
                                                  "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 6191,
                                                      "type": "struct UController.Organization storage pointer",
                                                      "value": "organization"
                                                    },
                                                    "id": 6220,
                                                    "name": "Identifier",
                                                    "src": "11448:12:11"
                                                  }
                                                ],
                                                "id": 6221,
                                                "name": "MemberAccess",
                                                "src": "11448:30:11"
                                              }
                                            ],
                                            "id": 6222,
                                            "name": "MemberAccess",
                                            "src": "11448:37:11"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "hexvalue": "31",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "subdenomination": null,
                                              "token": "number",
                                              "type": "int_const 1",
                                              "value": "1"
                                            },
                                            "id": 6223,
                                            "name": "Literal",
                                            "src": "11486:1:11"
                                          }
                                        ],
                                        "id": 6224,
                                        "name": "BinaryOperation",
                                        "src": "11448:39:11"
                                      }
                                    ],
                                    "id": 6225,
                                    "name": "FunctionCall",
                                    "src": "11418:70:11"
                                  }
                                ],
                                "id": 6226,
                                "name": "Assignment",
                                "src": "11358:130:11"
                              }
                            ],
                            "id": 6227,
                            "name": "ExpressionStatement",
                            "src": "11358:130:11"
                          }
                        ],
                        "id": 6228,
                        "name": "Block",
                        "src": "11250:249:11"
                      },
                      {
                        "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": 5370,
                                      "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": 5387,
                                              "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 6191,
                                                  "type": "struct UController.Organization storage pointer",
                                                  "value": "organization"
                                                },
                                                "id": 6229,
                                                "name": "Identifier",
                                                "src": "11518:12:11"
                                              }
                                            ],
                                            "id": 6236,
                                            "name": "MemberAccess",
                                            "src": "11518:30:11"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "index",
                                              "referencedDeclaration": 5375,
                                              "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": 5391,
                                                      "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 6191,
                                                          "type": "struct UController.Organization storage pointer",
                                                          "value": "organization"
                                                        },
                                                        "id": 6231,
                                                        "name": "Identifier",
                                                        "src": "11549:12:11"
                                                      }
                                                    ],
                                                    "id": 6232,
                                                    "name": "MemberAccess",
                                                    "src": "11549:38:11"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 6178,
                                                      "type": "address",
                                                      "value": "_globalConstraint"
                                                    },
                                                    "id": 6233,
                                                    "name": "Identifier",
                                                    "src": "11588:17:11"
                                                  }
                                                ],
                                                "id": 6234,
                                                "name": "IndexAccess",
                                                "src": "11549:57:11"
                                              }
                                            ],
                                            "id": 6235,
                                            "name": "MemberAccess",
                                            "src": "11549:63:11"
                                          }
                                        ],
                                        "id": 6237,
                                        "name": "IndexAccess",
                                        "src": "11518:95:11"
                                      }
                                    ],
                                    "id": 6238,
                                    "name": "MemberAccess",
                                    "src": "11518:102:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6180,
                                      "type": "bytes32",
                                      "value": "_params"
                                    },
                                    "id": 6239,
                                    "name": "Identifier",
                                    "src": "11623:7:11"
                                  }
                                ],
                                "id": 6240,
                                "name": "Assignment",
                                "src": "11518:112:11"
                              }
                            ],
                            "id": 6241,
                            "name": "ExpressionStatement",
                            "src": "11518:112:11"
                          }
                        ],
                        "id": 6242,
                        "name": "Block",
                        "src": "11504:137:11"
                      }
                    ],
                    "id": 6243,
                    "name": "IfStatement",
                    "src": "11177:464:11"
                  },
                  {
                    "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": 5501,
                              "type": "function (address,bytes32)",
                              "value": "AddGlobalConstraint"
                            },
                            "id": 6244,
                            "name": "Identifier",
                            "src": "11650:19:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6178,
                              "type": "address",
                              "value": "_globalConstraint"
                            },
                            "id": 6245,
                            "name": "Identifier",
                            "src": "11670:17:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6180,
                              "type": "bytes32",
                              "value": "_params"
                            },
                            "id": 6246,
                            "name": "Identifier",
                            "src": "11689:7:11"
                          }
                        ],
                        "id": 6247,
                        "name": "FunctionCall",
                        "src": "11650:47:11"
                      }
                    ],
                    "id": 6248,
                    "name": "ExpressionStatement",
                    "src": "11650:47:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 6189
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 6249,
                        "name": "Literal",
                        "src": "11714:4:11"
                      }
                    ],
                    "id": 6250,
                    "name": "Return",
                    "src": "11707:11:11"
                  }
                ],
                "id": 6251,
                "name": "Block",
                "src": "11099:626:11"
              }
            ],
            "id": 6252,
            "name": "FunctionDefinition",
            "src": "10944:781:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "removeGlobalConstraint",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": 5087,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_globalConstraint",
                      "scope": 6350,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6253,
                        "name": "ElementaryTypeName",
                        "src": "11994:7:11"
                      }
                    ],
                    "id": 6254,
                    "name": "VariableDeclaration",
                    "src": "11994:25:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6350,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6255,
                        "name": "ElementaryTypeName",
                        "src": "12020:7:11"
                      }
                    ],
                    "id": 6256,
                    "name": "VariableDeclaration",
                    "src": "12020:15:11"
                  }
                ],
                "id": 6257,
                "name": "ParameterList",
                "src": "11993:43:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6350,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6261,
                        "name": "ElementaryTypeName",
                        "src": "12093:4:11"
                      }
                    ],
                    "id": 6262,
                    "name": "VariableDeclaration",
                    "src": "12093:4:11"
                  }
                ],
                "id": 6263,
                "name": "ParameterList",
                "src": "12092:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5678,
                      "type": "modifier (address)",
                      "value": "onlyGlobalConstraintsScheme"
                    },
                    "id": 6258,
                    "name": "Identifier",
                    "src": "12048:27:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6256,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6259,
                    "name": "Identifier",
                    "src": "12076:7:11"
                  }
                ],
                "id": 6260,
                "name": "ModifierInvocation",
                "src": "12048:36:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        6265
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "globalConstraintRegister",
                          "scope": 6350,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct UController.GlobalConstraintRegister memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "GlobalConstraintRegister",
                              "referencedDeclaration": 5376,
                              "type": "struct UController.GlobalConstraintRegister storage pointer"
                            },
                            "id": 6264,
                            "name": "UserDefinedTypeName",
                            "src": "12113:24:11"
                          }
                        ],
                        "id": 6265,
                        "name": "VariableDeclaration",
                        "src": "12113:56:11"
                      },
                      {
                        "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": 5391,
                              "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": 5398,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 6266,
                                    "name": "Identifier",
                                    "src": "12172:13:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6256,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 6267,
                                    "name": "Identifier",
                                    "src": "12186:7:11"
                                  }
                                ],
                                "id": 6268,
                                "name": "IndexAccess",
                                "src": "12172:22:11"
                              }
                            ],
                            "id": 6269,
                            "name": "MemberAccess",
                            "src": "12172:48:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6254,
                              "type": "address",
                              "value": "_globalConstraint"
                            },
                            "id": 6270,
                            "name": "Identifier",
                            "src": "12221:17:11"
                          }
                        ],
                        "id": 6271,
                        "name": "IndexAccess",
                        "src": "12172:67:11"
                      }
                    ],
                    "id": 6272,
                    "name": "VariableDeclarationStatement",
                    "src": "12113:126:11"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        6276
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "globalConstraints",
                          "scope": 6350,
                          "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": 5371,
                                  "type": "struct UController.GlobalConstraint storage pointer"
                                },
                                "id": 6274,
                                "name": "UserDefinedTypeName",
                                "src": "12249:16:11"
                              }
                            ],
                            "id": 6275,
                            "name": "ArrayTypeName",
                            "src": "12249:18:11"
                          }
                        ],
                        "id": 6276,
                        "name": "VariableDeclaration",
                        "src": "12249:44:11"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "globalConstraints",
                          "referencedDeclaration": 5387,
                          "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": 5398,
                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                  "value": "organizations"
                                },
                                "id": 6277,
                                "name": "Identifier",
                                "src": "12296:13:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6256,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 6278,
                                "name": "Identifier",
                                "src": "12310:7:11"
                              }
                            ],
                            "id": 6279,
                            "name": "IndexAccess",
                            "src": "12296:22:11"
                          }
                        ],
                        "id": 6280,
                        "name": "MemberAccess",
                        "src": "12296:40:11"
                      }
                    ],
                    "id": 6281,
                    "name": "VariableDeclarationStatement",
                    "src": "12249:87:11"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "register",
                          "referencedDeclaration": 5373,
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6265,
                              "type": "struct UController.GlobalConstraintRegister memory",
                              "value": "globalConstraintRegister"
                            },
                            "id": 6282,
                            "name": "Identifier",
                            "src": "12352:24:11"
                          }
                        ],
                        "id": 6283,
                        "name": "MemberAccess",
                        "src": "12352:33:11"
                      },
                      {
                        "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": 5375,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6265,
                                          "type": "struct UController.GlobalConstraintRegister memory",
                                          "value": "globalConstraintRegister"
                                        },
                                        "id": 6284,
                                        "name": "Identifier",
                                        "src": "12405:24:11"
                                      }
                                    ],
                                    "id": 6285,
                                    "name": "MemberAccess",
                                    "src": "12405:30:11"
                                  },
                                  {
                                    "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": 6276,
                                              "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                                              "value": "globalConstraints"
                                            },
                                            "id": 6286,
                                            "name": "Identifier",
                                            "src": "12438:17:11"
                                          }
                                        ],
                                        "id": 6287,
                                        "name": "MemberAccess",
                                        "src": "12438:24:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 6288,
                                        "name": "Literal",
                                        "src": "12463:1:11"
                                      }
                                    ],
                                    "id": 6289,
                                    "name": "BinaryOperation",
                                    "src": "12438:26:11"
                                  }
                                ],
                                "id": 6290,
                                "name": "BinaryOperation",
                                "src": "12405:59:11"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "assignments": [
                                        6292
                                      ]
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "constant": false,
                                          "name": "globalConstraint",
                                          "scope": 6350,
                                          "stateVariable": false,
                                          "storageLocation": "memory",
                                          "type": "struct UController.GlobalConstraint memory",
                                          "value": null,
                                          "visibility": "internal"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "contractScope": null,
                                              "name": "GlobalConstraint",
                                              "referencedDeclaration": 5371,
                                              "type": "struct UController.GlobalConstraint storage pointer"
                                            },
                                            "id": 6291,
                                            "name": "UserDefinedTypeName",
                                            "src": "12484:16:11"
                                          }
                                        ],
                                        "id": 6292,
                                        "name": "VariableDeclaration",
                                        "src": "12484:40:11"
                                      },
                                      {
                                        "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": 5387,
                                              "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": 5398,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 6293,
                                                    "name": "Identifier",
                                                    "src": "12527:13:11"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 6256,
                                                      "type": "address",
                                                      "value": "_avatar"
                                                    },
                                                    "id": 6294,
                                                    "name": "Identifier",
                                                    "src": "12541:7:11"
                                                  }
                                                ],
                                                "id": 6295,
                                                "name": "IndexAccess",
                                                "src": "12527:22:11"
                                              }
                                            ],
                                            "id": 6296,
                                            "name": "MemberAccess",
                                            "src": "12527:40:11"
                                          },
                                          {
                                            "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": 6276,
                                                      "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                                                      "value": "globalConstraints"
                                                    },
                                                    "id": 6297,
                                                    "name": "Identifier",
                                                    "src": "12568:17:11"
                                                  }
                                                ],
                                                "id": 6298,
                                                "name": "MemberAccess",
                                                "src": "12568:24:11"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "hexvalue": "31",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "subdenomination": null,
                                                  "token": "number",
                                                  "type": "int_const 1",
                                                  "value": "1"
                                                },
                                                "id": 6299,
                                                "name": "Literal",
                                                "src": "12593:1:11"
                                              }
                                            ],
                                            "id": 6300,
                                            "name": "BinaryOperation",
                                            "src": "12568:26:11"
                                          }
                                        ],
                                        "id": 6301,
                                        "name": "IndexAccess",
                                        "src": "12527:68:11"
                                      }
                                    ],
                                    "id": 6302,
                                    "name": "VariableDeclarationStatement",
                                    "src": "12484:111:11"
                                  },
                                  {
                                    "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": 6276,
                                                  "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                                                  "value": "globalConstraints"
                                                },
                                                "id": 6303,
                                                "name": "Identifier",
                                                "src": "12613:17:11"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "index",
                                                  "referencedDeclaration": 5375,
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 6265,
                                                      "type": "struct UController.GlobalConstraintRegister memory",
                                                      "value": "globalConstraintRegister"
                                                    },
                                                    "id": 6304,
                                                    "name": "Identifier",
                                                    "src": "12631:24:11"
                                                  }
                                                ],
                                                "id": 6305,
                                                "name": "MemberAccess",
                                                "src": "12631:30:11"
                                              }
                                            ],
                                            "id": 6306,
                                            "name": "IndexAccess",
                                            "src": "12613:49:11"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6292,
                                              "type": "struct UController.GlobalConstraint memory",
                                              "value": "globalConstraint"
                                            },
                                            "id": 6307,
                                            "name": "Identifier",
                                            "src": "12665:16:11"
                                          }
                                        ],
                                        "id": 6308,
                                        "name": "Assignment",
                                        "src": "12613:68:11"
                                      }
                                    ],
                                    "id": 6309,
                                    "name": "ExpressionStatement",
                                    "src": "12613:68:11"
                                  },
                                  {
                                    "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": 5375,
                                              "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": 5391,
                                                      "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": 5398,
                                                              "type": "mapping(address => struct UController.Organization storage ref)",
                                                              "value": "organizations"
                                                            },
                                                            "id": 6310,
                                                            "name": "Identifier",
                                                            "src": "12699:13:11"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 6256,
                                                              "type": "address",
                                                              "value": "_avatar"
                                                            },
                                                            "id": 6311,
                                                            "name": "Identifier",
                                                            "src": "12713:7:11"
                                                          }
                                                        ],
                                                        "id": 6312,
                                                        "name": "IndexAccess",
                                                        "src": "12699:22:11"
                                                      }
                                                    ],
                                                    "id": 6313,
                                                    "name": "MemberAccess",
                                                    "src": "12699:48:11"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "gcAddress",
                                                      "referencedDeclaration": 5368,
                                                      "type": "address"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 6292,
                                                          "type": "struct UController.GlobalConstraint memory",
                                                          "value": "globalConstraint"
                                                        },
                                                        "id": 6314,
                                                        "name": "Identifier",
                                                        "src": "12748:16:11"
                                                      }
                                                    ],
                                                    "id": 6315,
                                                    "name": "MemberAccess",
                                                    "src": "12748:26:11"
                                                  }
                                                ],
                                                "id": 6316,
                                                "name": "IndexAccess",
                                                "src": "12699:76:11"
                                              }
                                            ],
                                            "id": 6317,
                                            "name": "MemberAccess",
                                            "src": "12699:82:11"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "index",
                                              "referencedDeclaration": 5375,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 6265,
                                                  "type": "struct UController.GlobalConstraintRegister memory",
                                                  "value": "globalConstraintRegister"
                                                },
                                                "id": 6318,
                                                "name": "Identifier",
                                                "src": "12784:24:11"
                                              }
                                            ],
                                            "id": 6319,
                                            "name": "MemberAccess",
                                            "src": "12784:30:11"
                                          }
                                        ],
                                        "id": 6320,
                                        "name": "Assignment",
                                        "src": "12699:115:11"
                                      }
                                    ],
                                    "id": 6321,
                                    "name": "ExpressionStatement",
                                    "src": "12699:115:11"
                                  }
                                ],
                                "id": 6322,
                                "name": "Block",
                                "src": "12466:363:11"
                              }
                            ],
                            "id": 6323,
                            "name": "IfStatement",
                            "src": "12401:428:11"
                          },
                          {
                            "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": 6276,
                                          "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                                          "value": "globalConstraints"
                                        },
                                        "id": 6324,
                                        "name": "Identifier",
                                        "src": "12842:17:11"
                                      }
                                    ],
                                    "id": 6326,
                                    "name": "MemberAccess",
                                    "src": "12842:24:11"
                                  }
                                ],
                                "id": 6327,
                                "name": "UnaryOperation",
                                "src": "12842:26:11"
                              }
                            ],
                            "id": 6328,
                            "name": "ExpressionStatement",
                            "src": "12842:26:11"
                          },
                          {
                            "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": 5391,
                                          "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": 5398,
                                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                                  "value": "organizations"
                                                },
                                                "id": 6329,
                                                "name": "Identifier",
                                                "src": "12889:13:11"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 6256,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 6330,
                                                "name": "Identifier",
                                                "src": "12903:7:11"
                                              }
                                            ],
                                            "id": 6331,
                                            "name": "IndexAccess",
                                            "src": "12889:22:11"
                                          }
                                        ],
                                        "id": 6332,
                                        "name": "MemberAccess",
                                        "src": "12889:48:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6254,
                                          "type": "address",
                                          "value": "_globalConstraint"
                                        },
                                        "id": 6333,
                                        "name": "Identifier",
                                        "src": "12938:17:11"
                                      }
                                    ],
                                    "id": 6334,
                                    "name": "IndexAccess",
                                    "src": "12889:67:11"
                                  }
                                ],
                                "id": 6335,
                                "name": "UnaryOperation",
                                "src": "12882:74:11"
                              }
                            ],
                            "id": 6336,
                            "name": "ExpressionStatement",
                            "src": "12882:74:11"
                          },
                          {
                            "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": 5507,
                                      "type": "function (address,uint256)",
                                      "value": "RemoveGlobalConstraint"
                                    },
                                    "id": 6337,
                                    "name": "Identifier",
                                    "src": "12970:22:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6254,
                                      "type": "address",
                                      "value": "_globalConstraint"
                                    },
                                    "id": 6338,
                                    "name": "Identifier",
                                    "src": "12993:17:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "index",
                                      "referencedDeclaration": 5375,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6265,
                                          "type": "struct UController.GlobalConstraintRegister memory",
                                          "value": "globalConstraintRegister"
                                        },
                                        "id": 6339,
                                        "name": "Identifier",
                                        "src": "13011:24:11"
                                      }
                                    ],
                                    "id": 6340,
                                    "name": "MemberAccess",
                                    "src": "13011:30:11"
                                  }
                                ],
                                "id": 6341,
                                "name": "FunctionCall",
                                "src": "12970:72:11"
                              }
                            ],
                            "id": 6342,
                            "name": "ExpressionStatement",
                            "src": "12970:72:11"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 6263
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "74727565",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "true"
                                },
                                "id": 6343,
                                "name": "Literal",
                                "src": "13063:4:11"
                              }
                            ],
                            "id": 6344,
                            "name": "Return",
                            "src": "13056:11:11"
                          }
                        ],
                        "id": 6345,
                        "name": "Block",
                        "src": "12387:691:11"
                      }
                    ],
                    "id": 6346,
                    "name": "IfStatement",
                    "src": "12348:730:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 6263
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "66616c7365",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "false"
                        },
                        "id": 6347,
                        "name": "Literal",
                        "src": "13094:5:11"
                      }
                    ],
                    "id": 6348,
                    "name": "Return",
                    "src": "13087:12:11"
                  }
                ],
                "id": 6349,
                "name": "Block",
                "src": "12103:1003:11"
              }
            ],
            "id": 6350,
            "name": "FunctionDefinition",
            "src": "11961:1145:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "upgradeController",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": 5096,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_newController",
                      "scope": 6443,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6351,
                        "name": "ElementaryTypeName",
                        "src": "13409:7:11"
                      }
                    ],
                    "id": 6352,
                    "name": "VariableDeclaration",
                    "src": "13409:22:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6443,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6353,
                        "name": "ElementaryTypeName",
                        "src": "13432:7:11"
                      }
                    ],
                    "id": 6354,
                    "name": "VariableDeclaration",
                    "src": "13432:15:11"
                  }
                ],
                "id": 6355,
                "name": "ParameterList",
                "src": "13408:40:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6443,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6359,
                        "name": "ElementaryTypeName",
                        "src": "13497:4:11"
                      }
                    ],
                    "id": 6360,
                    "name": "VariableDeclaration",
                    "src": "13497:4:11"
                  }
                ],
                "id": 6361,
                "name": "ParameterList",
                "src": "13496:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5703,
                      "type": "modifier (address)",
                      "value": "onlyUpgradingScheme"
                    },
                    "id": 6356,
                    "name": "Identifier",
                    "src": "13460:19:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6354,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6357,
                    "name": "Identifier",
                    "src": "13480:7:11"
                  }
                ],
                "id": 6358,
                "name": "ModifierInvocation",
                "src": "13460:28:11"
              },
              {
                "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": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 6362,
                            "name": "Identifier",
                            "src": "13517:7:11"
                          },
                          {
                            "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": 5402,
                                      "type": "mapping(address => address)",
                                      "value": "newControllers"
                                    },
                                    "id": 6363,
                                    "name": "Identifier",
                                    "src": "13525:14:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6354,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 6364,
                                    "name": "Identifier",
                                    "src": "13540:7:11"
                                  }
                                ],
                                "id": 6365,
                                "name": "IndexAccess",
                                "src": "13525:23:11"
                              },
                              {
                                "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": 6366,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "13552:7:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 6367,
                                    "name": "Literal",
                                    "src": "13560:1:11"
                                  }
                                ],
                                "id": 6368,
                                "name": "FunctionCall",
                                "src": "13552:10:11"
                              }
                            ],
                            "id": 6369,
                            "name": "BinaryOperation",
                            "src": "13525:37:11"
                          }
                        ],
                        "id": 6370,
                        "name": "FunctionCall",
                        "src": "13517:46:11"
                      }
                    ],
                    "id": 6371,
                    "name": "ExpressionStatement",
                    "src": "13517:46:11"
                  },
                  {
                    "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": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 6372,
                            "name": "Identifier",
                            "src": "13628:7:11"
                          },
                          {
                            "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": 6352,
                                  "type": "address",
                                  "value": "_newController"
                                },
                                "id": 6373,
                                "name": "Identifier",
                                "src": "13636:14:11"
                              },
                              {
                                "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": 6374,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "13654:7:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 6375,
                                    "name": "Literal",
                                    "src": "13662:1:11"
                                  }
                                ],
                                "id": 6376,
                                "name": "FunctionCall",
                                "src": "13654:10:11"
                              }
                            ],
                            "id": 6377,
                            "name": "BinaryOperation",
                            "src": "13636:28:11"
                          }
                        ],
                        "id": 6378,
                        "name": "FunctionCall",
                        "src": "13628:37:11"
                      }
                    ],
                    "id": 6379,
                    "name": "ExpressionStatement",
                    "src": "13628:37:11"
                  },
                  {
                    "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": 5402,
                                  "type": "mapping(address => address)",
                                  "value": "newControllers"
                                },
                                "id": 6380,
                                "name": "Identifier",
                                "src": "13675:14:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6354,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 6381,
                                "name": "Identifier",
                                "src": "13690:7:11"
                              }
                            ],
                            "id": 6382,
                            "name": "IndexAccess",
                            "src": "13675:23:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6352,
                              "type": "address",
                              "value": "_newController"
                            },
                            "id": 6383,
                            "name": "Identifier",
                            "src": "13701:14:11"
                          }
                        ],
                        "id": 6384,
                        "name": "Assignment",
                        "src": "13675:40:11"
                      }
                    ],
                    "id": 6385,
                    "name": "ExpressionStatement",
                    "src": "13675:40:11"
                  },
                  {
                    "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": 11444,
                              "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": 3873,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 6386,
                                        "name": "Identifier",
                                        "src": "13726:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6354,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 6387,
                                        "name": "Identifier",
                                        "src": "13733:7:11"
                                      }
                                    ],
                                    "id": 6388,
                                    "name": "FunctionCall",
                                    "src": "13726:15:11"
                                  }
                                ],
                                "id": 6389,
                                "name": "TupleExpression",
                                "src": "13725:17:11"
                              }
                            ],
                            "id": 6390,
                            "name": "MemberAccess",
                            "src": "13725:35:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6352,
                              "type": "address",
                              "value": "_newController"
                            },
                            "id": 6391,
                            "name": "Identifier",
                            "src": "13761:14:11"
                          }
                        ],
                        "id": 6392,
                        "name": "FunctionCall",
                        "src": "13725:51:11"
                      }
                    ],
                    "id": 6393,
                    "name": "ExpressionStatement",
                    "src": "13725:51:11"
                  },
                  {
                    "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": 11393,
                                  "type": "function () view external returns (address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "nativeToken",
                                      "referencedDeclaration": 5378,
                                      "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": 5398,
                                              "type": "mapping(address => struct UController.Organization storage ref)",
                                              "value": "organizations"
                                            },
                                            "id": 6394,
                                            "name": "Identifier",
                                            "src": "13790:13:11"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6354,
                                              "type": "address",
                                              "value": "_avatar"
                                            },
                                            "id": 6395,
                                            "name": "Identifier",
                                            "src": "13804:7:11"
                                          }
                                        ],
                                        "id": 6396,
                                        "name": "IndexAccess",
                                        "src": "13790:22:11"
                                      }
                                    ],
                                    "id": 6397,
                                    "name": "MemberAccess",
                                    "src": "13790:34:11"
                                  }
                                ],
                                "id": 6398,
                                "name": "MemberAccess",
                                "src": "13790:40:11"
                              }
                            ],
                            "id": 6399,
                            "name": "FunctionCall",
                            "src": "13790:42:11"
                          },
                          {
                            "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_$6673",
                                      "typeString": "contract UController"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 6400,
                                "name": "ElementaryTypeNameExpression",
                                "src": "13836:7:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12072,
                                  "type": "contract UController",
                                  "value": "this"
                                },
                                "id": 6401,
                                "name": "Identifier",
                                "src": "13844:4:11"
                              }
                            ],
                            "id": 6402,
                            "name": "FunctionCall",
                            "src": "13836:13:11"
                          }
                        ],
                        "id": 6403,
                        "name": "BinaryOperation",
                        "src": "13790:59:11"
                      },
                      {
                        "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": 11444,
                                      "type": "function (address) external"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "nativeToken",
                                          "referencedDeclaration": 5378,
                                          "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": 5398,
                                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                                  "value": "organizations"
                                                },
                                                "id": 6404,
                                                "name": "Identifier",
                                                "src": "13865:13:11"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 6354,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 6405,
                                                "name": "Identifier",
                                                "src": "13879:7:11"
                                              }
                                            ],
                                            "id": 6406,
                                            "name": "IndexAccess",
                                            "src": "13865:22:11"
                                          }
                                        ],
                                        "id": 6407,
                                        "name": "MemberAccess",
                                        "src": "13865:34:11"
                                      }
                                    ],
                                    "id": 6408,
                                    "name": "MemberAccess",
                                    "src": "13865:52:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6352,
                                      "type": "address",
                                      "value": "_newController"
                                    },
                                    "id": 6409,
                                    "name": "Identifier",
                                    "src": "13918:14:11"
                                  }
                                ],
                                "id": 6410,
                                "name": "FunctionCall",
                                "src": "13865:68:11"
                              }
                            ],
                            "id": 6411,
                            "name": "ExpressionStatement",
                            "src": "13865:68:11"
                          }
                        ],
                        "id": 6412,
                        "name": "Block",
                        "src": "13851:93:11"
                      }
                    ],
                    "id": 6413,
                    "name": "IfStatement",
                    "src": "13786:158:11"
                  },
                  {
                    "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": 11393,
                                  "type": "function () view external returns (address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "nativeReputation",
                                      "referencedDeclaration": 5380,
                                      "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": 5398,
                                              "type": "mapping(address => struct UController.Organization storage ref)",
                                              "value": "organizations"
                                            },
                                            "id": 6414,
                                            "name": "Identifier",
                                            "src": "13957:13:11"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6354,
                                              "type": "address",
                                              "value": "_avatar"
                                            },
                                            "id": 6415,
                                            "name": "Identifier",
                                            "src": "13971:7:11"
                                          }
                                        ],
                                        "id": 6416,
                                        "name": "IndexAccess",
                                        "src": "13957:22:11"
                                      }
                                    ],
                                    "id": 6417,
                                    "name": "MemberAccess",
                                    "src": "13957:39:11"
                                  }
                                ],
                                "id": 6418,
                                "name": "MemberAccess",
                                "src": "13957:45:11"
                              }
                            ],
                            "id": 6419,
                            "name": "FunctionCall",
                            "src": "13957:47:11"
                          },
                          {
                            "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_$6673",
                                      "typeString": "contract UController"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 6420,
                                "name": "ElementaryTypeNameExpression",
                                "src": "14008:7:11"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12072,
                                  "type": "contract UController",
                                  "value": "this"
                                },
                                "id": 6421,
                                "name": "Identifier",
                                "src": "14016:4:11"
                              }
                            ],
                            "id": 6422,
                            "name": "FunctionCall",
                            "src": "14008:13:11"
                          }
                        ],
                        "id": 6423,
                        "name": "BinaryOperation",
                        "src": "13957:64:11"
                      },
                      {
                        "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": 11444,
                                      "type": "function (address) external"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "nativeReputation",
                                          "referencedDeclaration": 5380,
                                          "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": 5398,
                                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                                  "value": "organizations"
                                                },
                                                "id": 6424,
                                                "name": "Identifier",
                                                "src": "14037:13:11"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 6354,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 6425,
                                                "name": "Identifier",
                                                "src": "14051:7:11"
                                              }
                                            ],
                                            "id": 6426,
                                            "name": "IndexAccess",
                                            "src": "14037:22:11"
                                          }
                                        ],
                                        "id": 6427,
                                        "name": "MemberAccess",
                                        "src": "14037:39:11"
                                      }
                                    ],
                                    "id": 6428,
                                    "name": "MemberAccess",
                                    "src": "14037:57:11"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6352,
                                      "type": "address",
                                      "value": "_newController"
                                    },
                                    "id": 6429,
                                    "name": "Identifier",
                                    "src": "14095:14:11"
                                  }
                                ],
                                "id": 6430,
                                "name": "FunctionCall",
                                "src": "14037:73:11"
                              }
                            ],
                            "id": 6431,
                            "name": "ExpressionStatement",
                            "src": "14037:73:11"
                          }
                        ],
                        "id": 6432,
                        "name": "Block",
                        "src": "14023:98:11"
                      }
                    ],
                    "id": 6433,
                    "name": "IfStatement",
                    "src": "13953:168:11"
                  },
                  {
                    "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_$6673",
                                  "typeString": "contract UController"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5515,
                              "type": "function (address,address,address)",
                              "value": "UpgradeController"
                            },
                            "id": 6434,
                            "name": "Identifier",
                            "src": "14130:17:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12072,
                              "type": "contract UController",
                              "value": "this"
                            },
                            "id": 6435,
                            "name": "Identifier",
                            "src": "14148:4:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6352,
                              "type": "address",
                              "value": "_newController"
                            },
                            "id": 6436,
                            "name": "Identifier",
                            "src": "14153:14:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6354,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 6437,
                            "name": "Identifier",
                            "src": "14168:7:11"
                          }
                        ],
                        "id": 6438,
                        "name": "FunctionCall",
                        "src": "14130:46:11"
                      }
                    ],
                    "id": 6439,
                    "name": "ExpressionStatement",
                    "src": "14130:46:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 6361
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 6440,
                        "name": "Literal",
                        "src": "14193:4:11"
                      }
                    ],
                    "id": 6441,
                    "name": "Return",
                    "src": "14186:11:11"
                  }
                ],
                "id": 6442,
                "name": "Block",
                "src": "13507:697:11"
              }
            ],
            "id": 6443,
            "name": "FunctionDefinition",
            "src": "13382:822:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "genericAction",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": 5106,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_params",
                      "scope": 6477,
                      "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": 6444,
                            "name": "ElementaryTypeName",
                            "src": "14613:7:11"
                          }
                        ],
                        "id": 6445,
                        "name": "ArrayTypeName",
                        "src": "14613:9:11"
                      }
                    ],
                    "id": 6446,
                    "name": "VariableDeclaration",
                    "src": "14613:17:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6477,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6447,
                        "name": "ElementaryTypeName",
                        "src": "14631:7:11"
                      }
                    ],
                    "id": 6448,
                    "name": "VariableDeclaration",
                    "src": "14631:15:11"
                  }
                ],
                "id": 6449,
                "name": "ParameterList",
                "src": "14612:35:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6477,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6457,
                        "name": "ElementaryTypeName",
                        "src": "14758:4:11"
                      }
                    ],
                    "id": 6458,
                    "name": "VariableDeclaration",
                    "src": "14758:4:11"
                  }
                ],
                "id": 6459,
                "name": "ParameterList",
                "src": "14757:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5628,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 6450,
                    "name": "Identifier",
                    "src": "14663:20:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6448,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6451,
                    "name": "Identifier",
                    "src": "14684:7:11"
                  }
                ],
                "id": 6452,
                "name": "ModifierInvocation",
                "src": "14663:29:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5787,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 6453,
                    "name": "Identifier",
                    "src": "14697:23:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "67656e65726963416374696f6e",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"genericAction\"",
                      "value": "genericAction"
                    },
                    "id": 6454,
                    "name": "Literal",
                    "src": "14721:15:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6448,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6455,
                    "name": "Identifier",
                    "src": "14737:7:11"
                  }
                ],
                "id": 6456,
                "name": "ModifierInvocation",
                "src": "14697:48:11"
              },
              {
                "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": 5445,
                              "type": "function (address,bytes32[] memory)",
                              "value": "GenericAction"
                            },
                            "id": 6460,
                            "name": "Identifier",
                            "src": "14778:13:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 6461,
                                "name": "Identifier",
                                "src": "14792:3:11"
                              }
                            ],
                            "id": 6462,
                            "name": "MemberAccess",
                            "src": "14792:10:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6446,
                              "type": "bytes32[] memory",
                              "value": "_params"
                            },
                            "id": 6463,
                            "name": "Identifier",
                            "src": "14804:7:11"
                          }
                        ],
                        "id": 6464,
                        "name": "FunctionCall",
                        "src": "14778:34:11"
                      }
                    ],
                    "id": 6465,
                    "name": "ExpressionStatement",
                    "src": "14778:34:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 6459
                    },
                    "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": 3727,
                              "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": 3873,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 6466,
                                        "name": "Identifier",
                                        "src": "14830:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6448,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 6467,
                                        "name": "Identifier",
                                        "src": "14837:7:11"
                                      }
                                    ],
                                    "id": 6468,
                                    "name": "FunctionCall",
                                    "src": "14830:15:11"
                                  }
                                ],
                                "id": 6469,
                                "name": "TupleExpression",
                                "src": "14829:17:11"
                              }
                            ],
                            "id": 6470,
                            "name": "MemberAccess",
                            "src": "14829:31:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 6471,
                                "name": "Identifier",
                                "src": "14861:3:11"
                              }
                            ],
                            "id": 6472,
                            "name": "MemberAccess",
                            "src": "14861:10:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6446,
                              "type": "bytes32[] memory",
                              "value": "_params"
                            },
                            "id": 6473,
                            "name": "Identifier",
                            "src": "14873:7:11"
                          }
                        ],
                        "id": 6474,
                        "name": "FunctionCall",
                        "src": "14829:52:11"
                      }
                    ],
                    "id": 6475,
                    "name": "Return",
                    "src": "14822:59:11"
                  }
                ],
                "id": 6476,
                "name": "Block",
                "src": "14768:120:11"
              }
            ],
            "id": 6477,
            "name": "FunctionDefinition",
            "src": "14590:298:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "sendEther",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": 5117,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amountInWei",
                      "scope": 6512,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 6478,
                        "name": "ElementaryTypeName",
                        "src": "15146:4:11"
                      }
                    ],
                    "id": 6479,
                    "name": "VariableDeclaration",
                    "src": "15146:17:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 6512,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6480,
                        "name": "ElementaryTypeName",
                        "src": "15165:7:11"
                      }
                    ],
                    "id": 6481,
                    "name": "VariableDeclaration",
                    "src": "15165:11:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6512,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6482,
                        "name": "ElementaryTypeName",
                        "src": "15177:7:11"
                      }
                    ],
                    "id": 6483,
                    "name": "VariableDeclaration",
                    "src": "15177:15:11"
                  }
                ],
                "id": 6484,
                "name": "ParameterList",
                "src": "15145:48:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6512,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6492,
                        "name": "ElementaryTypeName",
                        "src": "15300:4:11"
                      }
                    ],
                    "id": 6493,
                    "name": "VariableDeclaration",
                    "src": "15300:4:11"
                  }
                ],
                "id": 6494,
                "name": "ParameterList",
                "src": "15299:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5628,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 6485,
                    "name": "Identifier",
                    "src": "15209:20:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6483,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6486,
                    "name": "Identifier",
                    "src": "15230:7:11"
                  }
                ],
                "id": 6487,
                "name": "ModifierInvocation",
                "src": "15209:29:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5787,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 6488,
                    "name": "Identifier",
                    "src": "15243:23:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "73656e644574686572",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"sendEther\"",
                      "value": "sendEther"
                    },
                    "id": 6489,
                    "name": "Literal",
                    "src": "15267:11:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6483,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6490,
                    "name": "Identifier",
                    "src": "15279:7:11"
                  }
                ],
                "id": 6491,
                "name": "ModifierInvocation",
                "src": "15243:44:11"
              },
              {
                "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": 5453,
                              "type": "function (address,uint256,address)",
                              "value": "SendEther"
                            },
                            "id": 6495,
                            "name": "Identifier",
                            "src": "15320:9:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 6496,
                                "name": "Identifier",
                                "src": "15330:3:11"
                              }
                            ],
                            "id": 6497,
                            "name": "MemberAccess",
                            "src": "15330:10:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6479,
                              "type": "uint256",
                              "value": "_amountInWei"
                            },
                            "id": 6498,
                            "name": "Identifier",
                            "src": "15342:12:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6481,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 6499,
                            "name": "Identifier",
                            "src": "15356:3:11"
                          }
                        ],
                        "id": 6500,
                        "name": "FunctionCall",
                        "src": "15320:40:11"
                      }
                    ],
                    "id": 6501,
                    "name": "ExpressionStatement",
                    "src": "15320:40:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 6494
                    },
                    "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": 3752,
                              "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": 3873,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 6502,
                                        "name": "Identifier",
                                        "src": "15378:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6483,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 6503,
                                        "name": "Identifier",
                                        "src": "15385:7:11"
                                      }
                                    ],
                                    "id": 6504,
                                    "name": "FunctionCall",
                                    "src": "15378:15:11"
                                  }
                                ],
                                "id": 6505,
                                "name": "TupleExpression",
                                "src": "15377:17:11"
                              }
                            ],
                            "id": 6506,
                            "name": "MemberAccess",
                            "src": "15377:27:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6479,
                              "type": "uint256",
                              "value": "_amountInWei"
                            },
                            "id": 6507,
                            "name": "Identifier",
                            "src": "15405:12:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6481,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 6508,
                            "name": "Identifier",
                            "src": "15419:3:11"
                          }
                        ],
                        "id": 6509,
                        "name": "FunctionCall",
                        "src": "15377:46:11"
                      }
                    ],
                    "id": 6510,
                    "name": "Return",
                    "src": "15370:53:11"
                  }
                ],
                "id": 6511,
                "name": "Block",
                "src": "15310:120:11"
              }
            ],
            "id": 6512,
            "name": "FunctionDefinition",
            "src": "15127:303:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenTransfer",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": 5130,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 6551,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 6513,
                        "name": "UserDefinedTypeName",
                        "src": "15791:13:11"
                      }
                    ],
                    "id": 6514,
                    "name": "VariableDeclaration",
                    "src": "15791:28:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 6551,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6515,
                        "name": "ElementaryTypeName",
                        "src": "15821:7:11"
                      }
                    ],
                    "id": 6516,
                    "name": "VariableDeclaration",
                    "src": "15821:11:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_value",
                      "scope": 6551,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 6517,
                        "name": "ElementaryTypeName",
                        "src": "15834:4:11"
                      }
                    ],
                    "id": 6518,
                    "name": "VariableDeclaration",
                    "src": "15834:11:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6551,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6519,
                        "name": "ElementaryTypeName",
                        "src": "15846:7:11"
                      }
                    ],
                    "id": 6520,
                    "name": "VariableDeclaration",
                    "src": "15846:15:11"
                  }
                ],
                "id": 6521,
                "name": "ParameterList",
                "src": "15790:72:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6551,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6529,
                        "name": "ElementaryTypeName",
                        "src": "15981:4:11"
                      }
                    ],
                    "id": 6530,
                    "name": "VariableDeclaration",
                    "src": "15981:4:11"
                  }
                ],
                "id": 6531,
                "name": "ParameterList",
                "src": "15980:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5628,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 6522,
                    "name": "Identifier",
                    "src": "15878:20:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6520,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6523,
                    "name": "Identifier",
                    "src": "15899:7:11"
                  }
                ],
                "id": 6524,
                "name": "ModifierInvocation",
                "src": "15878:29:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5787,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 6525,
                    "name": "Identifier",
                    "src": "15912:23:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "65787465726e616c546f6b656e5472616e73666572",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"externalTokenTransfer\"",
                      "value": "externalTokenTransfer"
                    },
                    "id": 6526,
                    "name": "Literal",
                    "src": "15936:23:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6520,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6527,
                    "name": "Identifier",
                    "src": "15960:7:11"
                  }
                ],
                "id": 6528,
                "name": "ModifierInvocation",
                "src": "15912:56:11"
              },
              {
                "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_$11999",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5463,
                              "type": "function (address,address,address,uint256)",
                              "value": "ExternalTokenTransfer"
                            },
                            "id": 6532,
                            "name": "Identifier",
                            "src": "16001:21:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 6533,
                                "name": "Identifier",
                                "src": "16023:3:11"
                              }
                            ],
                            "id": 6534,
                            "name": "MemberAccess",
                            "src": "16023:10:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6514,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 6535,
                            "name": "Identifier",
                            "src": "16035:14:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6516,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 6536,
                            "name": "Identifier",
                            "src": "16051:3:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6518,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 6537,
                            "name": "Identifier",
                            "src": "16056:6:11"
                          }
                        ],
                        "id": 6538,
                        "name": "FunctionCall",
                        "src": "16001:62:11"
                      }
                    ],
                    "id": 6539,
                    "name": "ExpressionStatement",
                    "src": "16001:62:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 6531
                    },
                    "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_$11999",
                                  "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": 3781,
                              "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": 3873,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 6540,
                                        "name": "Identifier",
                                        "src": "16081:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6520,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 6541,
                                        "name": "Identifier",
                                        "src": "16088:7:11"
                                      }
                                    ],
                                    "id": 6542,
                                    "name": "FunctionCall",
                                    "src": "16081:15:11"
                                  }
                                ],
                                "id": 6543,
                                "name": "TupleExpression",
                                "src": "16080:17:11"
                              }
                            ],
                            "id": 6544,
                            "name": "MemberAccess",
                            "src": "16080:39:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6514,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 6545,
                            "name": "Identifier",
                            "src": "16120:14:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6516,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 6546,
                            "name": "Identifier",
                            "src": "16136:3:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6518,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 6547,
                            "name": "Identifier",
                            "src": "16141:6:11"
                          }
                        ],
                        "id": 6548,
                        "name": "FunctionCall",
                        "src": "16080:68:11"
                      }
                    ],
                    "id": 6549,
                    "name": "Return",
                    "src": "16073:75:11"
                  }
                ],
                "id": 6550,
                "name": "Block",
                "src": "15991:164:11"
              }
            ],
            "id": 6551,
            "name": "FunctionDefinition",
            "src": "15760:395:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenTransferFrom",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": 5145,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 6594,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 6552,
                        "name": "UserDefinedTypeName",
                        "src": "16726:13:11"
                      }
                    ],
                    "id": 6553,
                    "name": "VariableDeclaration",
                    "src": "16726:28:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_from",
                      "scope": 6594,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6554,
                        "name": "ElementaryTypeName",
                        "src": "16756:7:11"
                      }
                    ],
                    "id": 6555,
                    "name": "VariableDeclaration",
                    "src": "16756:13:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 6594,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6556,
                        "name": "ElementaryTypeName",
                        "src": "16771:7:11"
                      }
                    ],
                    "id": 6557,
                    "name": "VariableDeclaration",
                    "src": "16771:11:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_value",
                      "scope": 6594,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 6558,
                        "name": "ElementaryTypeName",
                        "src": "16784:4:11"
                      }
                    ],
                    "id": 6559,
                    "name": "VariableDeclaration",
                    "src": "16784:11:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6594,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6560,
                        "name": "ElementaryTypeName",
                        "src": "16796:7:11"
                      }
                    ],
                    "id": 6561,
                    "name": "VariableDeclaration",
                    "src": "16796:15:11"
                  }
                ],
                "id": 6562,
                "name": "ParameterList",
                "src": "16725:87:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6594,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6570,
                        "name": "ElementaryTypeName",
                        "src": "16935:4:11"
                      }
                    ],
                    "id": 6571,
                    "name": "VariableDeclaration",
                    "src": "16935:4:11"
                  }
                ],
                "id": 6572,
                "name": "ParameterList",
                "src": "16934:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5628,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 6563,
                    "name": "Identifier",
                    "src": "16828:20:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6561,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6564,
                    "name": "Identifier",
                    "src": "16849:7:11"
                  }
                ],
                "id": 6565,
                "name": "ModifierInvocation",
                "src": "16828:29:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5787,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 6566,
                    "name": "Identifier",
                    "src": "16862:23:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "65787465726e616c546f6b656e5472616e7366657246726f6d",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"externalTokenTransferFrom\"",
                      "value": "externalTokenTransferFrom"
                    },
                    "id": 6567,
                    "name": "Literal",
                    "src": "16886:27:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6561,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6568,
                    "name": "Identifier",
                    "src": "16914:7:11"
                  }
                ],
                "id": 6569,
                "name": "ModifierInvocation",
                "src": "16862:60:11"
              },
              {
                "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_$11999",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5475,
                              "type": "function (address,address,address,address,uint256)",
                              "value": "ExternalTokenTransferFrom"
                            },
                            "id": 6573,
                            "name": "Identifier",
                            "src": "16955:25:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 6574,
                                "name": "Identifier",
                                "src": "16981:3:11"
                              }
                            ],
                            "id": 6575,
                            "name": "MemberAccess",
                            "src": "16981:10:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6553,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 6576,
                            "name": "Identifier",
                            "src": "16993:14:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6555,
                              "type": "address",
                              "value": "_from"
                            },
                            "id": 6577,
                            "name": "Identifier",
                            "src": "17009:5:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6557,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 6578,
                            "name": "Identifier",
                            "src": "17016:3:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6559,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 6579,
                            "name": "Identifier",
                            "src": "17021:6:11"
                          }
                        ],
                        "id": 6580,
                        "name": "FunctionCall",
                        "src": "16955:73:11"
                      }
                    ],
                    "id": 6581,
                    "name": "ExpressionStatement",
                    "src": "16955:73:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 6572
                    },
                    "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_$11999",
                                  "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": 3814,
                              "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": 3873,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 6582,
                                        "name": "Identifier",
                                        "src": "17046:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6561,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 6583,
                                        "name": "Identifier",
                                        "src": "17053:7:11"
                                      }
                                    ],
                                    "id": 6584,
                                    "name": "FunctionCall",
                                    "src": "17046:15:11"
                                  }
                                ],
                                "id": 6585,
                                "name": "TupleExpression",
                                "src": "17045:17:11"
                              }
                            ],
                            "id": 6586,
                            "name": "MemberAccess",
                            "src": "17045:43:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6553,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 6587,
                            "name": "Identifier",
                            "src": "17089:14:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6555,
                              "type": "address",
                              "value": "_from"
                            },
                            "id": 6588,
                            "name": "Identifier",
                            "src": "17105:5:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6557,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 6589,
                            "name": "Identifier",
                            "src": "17112:3:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6559,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 6590,
                            "name": "Identifier",
                            "src": "17117:6:11"
                          }
                        ],
                        "id": 6591,
                        "name": "FunctionCall",
                        "src": "17045:79:11"
                      }
                    ],
                    "id": 6592,
                    "name": "Return",
                    "src": "17038:86:11"
                  }
                ],
                "id": 6593,
                "name": "Block",
                "src": "16945:186:11"
              }
            ],
            "id": 6594,
            "name": "FunctionDefinition",
            "src": "16691:440:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenIncreaseApproval",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": 5158,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 6633,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 6595,
                        "name": "UserDefinedTypeName",
                        "src": "17592:13:11"
                      }
                    ],
                    "id": 6596,
                    "name": "VariableDeclaration",
                    "src": "17592:28:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 6633,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6597,
                        "name": "ElementaryTypeName",
                        "src": "17622:7:11"
                      }
                    ],
                    "id": 6598,
                    "name": "VariableDeclaration",
                    "src": "17622:16:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_addedValue",
                      "scope": 6633,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 6599,
                        "name": "ElementaryTypeName",
                        "src": "17640:4:11"
                      }
                    ],
                    "id": 6600,
                    "name": "VariableDeclaration",
                    "src": "17640:16:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6633,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6601,
                        "name": "ElementaryTypeName",
                        "src": "17657:7:11"
                      }
                    ],
                    "id": 6602,
                    "name": "VariableDeclaration",
                    "src": "17657:15:11"
                  }
                ],
                "id": 6603,
                "name": "ParameterList",
                "src": "17591:82:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6633,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6611,
                        "name": "ElementaryTypeName",
                        "src": "17800:4:11"
                      }
                    ],
                    "id": 6612,
                    "name": "VariableDeclaration",
                    "src": "17800:4:11"
                  }
                ],
                "id": 6613,
                "name": "ParameterList",
                "src": "17799:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5628,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 6604,
                    "name": "Identifier",
                    "src": "17689:20:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6602,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6605,
                    "name": "Identifier",
                    "src": "17710:7:11"
                  }
                ],
                "id": 6606,
                "name": "ModifierInvocation",
                "src": "17689:29:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5787,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 6607,
                    "name": "Identifier",
                    "src": "17723:23:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "65787465726e616c546f6b656e496e637265617365417070726f76616c",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"externalTokenIncreaseApproval\"",
                      "value": "externalTokenIncreaseApproval"
                    },
                    "id": 6608,
                    "name": "Literal",
                    "src": "17747:31:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6602,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6609,
                    "name": "Identifier",
                    "src": "17779:7:11"
                  }
                ],
                "id": 6610,
                "name": "ModifierInvocation",
                "src": "17723:64:11"
              },
              {
                "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_$11999",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5485,
                              "type": "function (address,contract StandardToken,address,uint256)",
                              "value": "ExternalTokenIncreaseApproval"
                            },
                            "id": 6614,
                            "name": "Identifier",
                            "src": "17820:29:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 6615,
                                "name": "Identifier",
                                "src": "17850:3:11"
                              }
                            ],
                            "id": 6616,
                            "name": "MemberAccess",
                            "src": "17850:10:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6596,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 6617,
                            "name": "Identifier",
                            "src": "17861:14:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6598,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 6618,
                            "name": "Identifier",
                            "src": "17876:8:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6600,
                              "type": "uint256",
                              "value": "_addedValue"
                            },
                            "id": 6619,
                            "name": "Identifier",
                            "src": "17885:11:11"
                          }
                        ],
                        "id": 6620,
                        "name": "FunctionCall",
                        "src": "17820:77:11"
                      }
                    ],
                    "id": 6621,
                    "name": "ExpressionStatement",
                    "src": "17820:77:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 6613
                    },
                    "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_$11999",
                                  "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": 3843,
                              "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": 3873,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 6622,
                                        "name": "Identifier",
                                        "src": "17915:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6602,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 6623,
                                        "name": "Identifier",
                                        "src": "17922:7:11"
                                      }
                                    ],
                                    "id": 6624,
                                    "name": "FunctionCall",
                                    "src": "17915:15:11"
                                  }
                                ],
                                "id": 6625,
                                "name": "TupleExpression",
                                "src": "17914:17:11"
                              }
                            ],
                            "id": 6626,
                            "name": "MemberAccess",
                            "src": "17914:47:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6596,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 6627,
                            "name": "Identifier",
                            "src": "17962:14:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6598,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 6628,
                            "name": "Identifier",
                            "src": "17978:8:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6600,
                              "type": "uint256",
                              "value": "_addedValue"
                            },
                            "id": 6629,
                            "name": "Identifier",
                            "src": "17988:11:11"
                          }
                        ],
                        "id": 6630,
                        "name": "FunctionCall",
                        "src": "17914:86:11"
                      }
                    ],
                    "id": 6631,
                    "name": "Return",
                    "src": "17907:93:11"
                  }
                ],
                "id": 6632,
                "name": "Block",
                "src": "17810:197:11"
              }
            ],
            "id": 6633,
            "name": "FunctionDefinition",
            "src": "17553:454:11"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenDecreaseApproval",
              "payable": false,
              "scope": 6673,
              "stateMutability": "nonpayable",
              "superFunction": 5171,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 6672,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 6634,
                        "name": "UserDefinedTypeName",
                        "src": "18473:13:11"
                      }
                    ],
                    "id": 6635,
                    "name": "VariableDeclaration",
                    "src": "18473:28:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 6672,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6636,
                        "name": "ElementaryTypeName",
                        "src": "18503:7:11"
                      }
                    ],
                    "id": 6637,
                    "name": "VariableDeclaration",
                    "src": "18503:16:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_subtractedValue",
                      "scope": 6672,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 6638,
                        "name": "ElementaryTypeName",
                        "src": "18521:4:11"
                      }
                    ],
                    "id": 6639,
                    "name": "VariableDeclaration",
                    "src": "18521:21:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 6672,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 6640,
                        "name": "ElementaryTypeName",
                        "src": "18543:7:11"
                      }
                    ],
                    "id": 6641,
                    "name": "VariableDeclaration",
                    "src": "18543:15:11"
                  }
                ],
                "id": 6642,
                "name": "ParameterList",
                "src": "18472:87:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 6672,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6650,
                        "name": "ElementaryTypeName",
                        "src": "18686:4:11"
                      }
                    ],
                    "id": 6651,
                    "name": "VariableDeclaration",
                    "src": "18686:4:11"
                  }
                ],
                "id": 6652,
                "name": "ParameterList",
                "src": "18685:6:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5628,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 6643,
                    "name": "Identifier",
                    "src": "18575:20:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6641,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6644,
                    "name": "Identifier",
                    "src": "18596:7:11"
                  }
                ],
                "id": 6645,
                "name": "ModifierInvocation",
                "src": "18575:29:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5787,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 6646,
                    "name": "Identifier",
                    "src": "18609:23:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "65787465726e616c546f6b656e4465637265617365417070726f76616c",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"externalTokenDecreaseApproval\"",
                      "value": "externalTokenDecreaseApproval"
                    },
                    "id": 6647,
                    "name": "Literal",
                    "src": "18633:31:11"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6641,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 6648,
                    "name": "Identifier",
                    "src": "18665:7:11"
                  }
                ],
                "id": 6649,
                "name": "ModifierInvocation",
                "src": "18609:64:11"
              },
              {
                "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_$11999",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5495,
                              "type": "function (address,contract StandardToken,address,uint256)",
                              "value": "ExternalTokenDecreaseApproval"
                            },
                            "id": 6653,
                            "name": "Identifier",
                            "src": "18706:29:11"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 6654,
                                "name": "Identifier",
                                "src": "18736:3:11"
                              }
                            ],
                            "id": 6655,
                            "name": "MemberAccess",
                            "src": "18736:10:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6635,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 6656,
                            "name": "Identifier",
                            "src": "18747:14:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6637,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 6657,
                            "name": "Identifier",
                            "src": "18762:8:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6639,
                              "type": "uint256",
                              "value": "_subtractedValue"
                            },
                            "id": 6658,
                            "name": "Identifier",
                            "src": "18771:16:11"
                          }
                        ],
                        "id": 6659,
                        "name": "FunctionCall",
                        "src": "18706:82:11"
                      }
                    ],
                    "id": 6660,
                    "name": "ExpressionStatement",
                    "src": "18706:82:11"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 6652
                    },
                    "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_$11999",
                                  "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": 3872,
                              "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": 3873,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 6661,
                                        "name": "Identifier",
                                        "src": "18806:6:11"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6641,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 6662,
                                        "name": "Identifier",
                                        "src": "18813:7:11"
                                      }
                                    ],
                                    "id": 6663,
                                    "name": "FunctionCall",
                                    "src": "18806:15:11"
                                  }
                                ],
                                "id": 6664,
                                "name": "TupleExpression",
                                "src": "18805:17:11"
                              }
                            ],
                            "id": 6665,
                            "name": "MemberAccess",
                            "src": "18805:47:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6635,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 6666,
                            "name": "Identifier",
                            "src": "18853:14:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6637,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 6667,
                            "name": "Identifier",
                            "src": "18869:8:11"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6639,
                              "type": "uint256",
                              "value": "_subtractedValue"
                            },
                            "id": 6668,
                            "name": "Identifier",
                            "src": "18879:16:11"
                          }
                        ],
                        "id": 6669,
                        "name": "FunctionCall",
                        "src": "18805:91:11"
                      }
                    ],
                    "id": 6670,
                    "name": "Return",
                    "src": "18798:98:11"
                  }
                ],
                "id": 6671,
                "name": "Block",
                "src": "18696:207:11"
              }
            ],
            "id": 6672,
            "name": "FunctionDefinition",
            "src": "18434:469:11"
          }
        ],
        "id": 6673,
        "name": "ContractDefinition",
        "src": "504:18401:11"
      }
    ],
    "id": 6674,
    "name": "SourceUnit",
    "src": "0:18906:11"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-02-04T21:57:39.056Z"
}