{
  "contractName": "VestingScheme",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "parameters",
      "outputs": [
        {
          "name": "voteParams",
          "type": "bytes32"
        },
        {
          "name": "intVote",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        },
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "organizationsData",
      "outputs": [
        {
          "name": "token",
          "type": "address"
        },
        {
          "name": "beneficiary",
          "type": "address"
        },
        {
          "name": "returnOnCancelAddress",
          "type": "address"
        },
        {
          "name": "startingBlock",
          "type": "uint256"
        },
        {
          "name": "amountPerPeriod",
          "type": "uint256"
        },
        {
          "name": "periodLength",
          "type": "uint256"
        },
        {
          "name": "numOfAgreedPeriods",
          "type": "uint256"
        },
        {
          "name": "cliffInPeriods",
          "type": "uint256"
        },
        {
          "name": "signaturesReqToCancel",
          "type": "uint256"
        },
        {
          "name": "collectedPeriods",
          "type": "uint256"
        },
        {
          "name": "signaturesReceivedCounter",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voteParams",
          "type": "bytes32"
        },
        {
          "name": "_intVote",
          "type": "address"
        }
      ],
      "name": "getParametersHash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hashedParameters",
          "type": "bytes32"
        }
      ],
      "name": "updateParameters",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_avatar",
          "type": "address"
        },
        {
          "name": "_param",
          "type": "int256"
        }
      ],
      "name": "execute",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "name": "_returnOnCancelAddress",
          "type": "address"
        },
        {
          "name": "_startingBlock",
          "type": "uint256"
        },
        {
          "name": "_amountPerPeriod",
          "type": "uint256"
        },
        {
          "name": "_periodLength",
          "type": "uint256"
        },
        {
          "name": "_numOfAgreedPeriods",
          "type": "uint256"
        },
        {
          "name": "_cliffInPeriods",
          "type": "uint256"
        },
        {
          "name": "_signaturesReqToCancel",
          "type": "uint256"
        },
        {
          "name": "_signersArray",
          "type": "address[]"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "proposeVestingAgreement",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_voteParams",
          "type": "bytes32"
        },
        {
          "name": "_intVote",
          "type": "address"
        }
      ],
      "name": "setParameters",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_agreementId",
          "type": "uint256"
        }
      ],
      "name": "revokeSignToCancelAgreement",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_agreementId",
          "type": "uint256"
        }
      ],
      "name": "signToCancelAgreement",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "agreements",
      "outputs": [
        {
          "name": "token",
          "type": "address"
        },
        {
          "name": "beneficiary",
          "type": "address"
        },
        {
          "name": "returnOnCancelAddress",
          "type": "address"
        },
        {
          "name": "startingBlock",
          "type": "uint256"
        },
        {
          "name": "amountPerPeriod",
          "type": "uint256"
        },
        {
          "name": "periodLength",
          "type": "uint256"
        },
        {
          "name": "numOfAgreedPeriods",
          "type": "uint256"
        },
        {
          "name": "cliffInPeriods",
          "type": "uint256"
        },
        {
          "name": "signaturesReqToCancel",
          "type": "uint256"
        },
        {
          "name": "collectedPeriods",
          "type": "uint256"
        },
        {
          "name": "signaturesReceivedCounter",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_agreementId",
          "type": "uint256"
        }
      ],
      "name": "collect",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_token",
          "type": "address"
        },
        {
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "name": "_returnOnCancelAddress",
          "type": "address"
        },
        {
          "name": "_startingBlock",
          "type": "uint256"
        },
        {
          "name": "_amountPerPeriod",
          "type": "uint256"
        },
        {
          "name": "_periodLength",
          "type": "uint256"
        },
        {
          "name": "_numOfAgreedPeriods",
          "type": "uint256"
        },
        {
          "name": "_cliffInPeriods",
          "type": "uint256"
        },
        {
          "name": "_signaturesReqToCancel",
          "type": "uint256"
        },
        {
          "name": "_signersArray",
          "type": "address[]"
        }
      ],
      "name": "createVestedAgreement",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "hashedParameters",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "ProposalExecuted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "AgreementProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "_result",
          "type": "int256"
        }
      ],
      "name": "Execution",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_agreementId",
          "type": "uint256"
        }
      ],
      "name": "NewVestedAgreement",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_agreementId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_signer",
          "type": "address"
        }
      ],
      "name": "SignToCancelAgreement",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_agreementId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_signer",
          "type": "address"
        }
      ],
      "name": "RevokeSignToCancelAgreement",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_agreementId",
          "type": "uint256"
        }
      ],
      "name": "AgreementCancel",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_agreementId",
          "type": "uint256"
        }
      ],
      "name": "Collect",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "proposalId",
          "type": "bytes32"
        }
      ],
      "name": "NewProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a0319909116179055611b8a8061003b6000396000f3006060604052600436106100c15763ffffffff60e060020a6000350416630250680481146100c657806307377bd6146100fd5780632453732a146101875780632ac2af53146101bb578063310ce4e2146101d357806367b603901461020c57806368e14dac1461025e57806389d75221146102805780638b087f3f146102965780638da5cb5b146102ac578063bd14de96146102db578063ce3f865f146102f1578063f2fde38b14610307578063f76f3fb114610326578063f98e87ba14610378575b600080fd5b34156100d157600080fd5b6100dc60043561038b565b604051918252600160a060020a031660208201526040908101905180910390f35b341561010857600080fd5b61011f600160a060020a03600435166024356103ad565b604051600160a060020a039b8c168152998b1660208b0152979099166040808a01919091526060890196909652608088019490945260a087019290925260c086015260e085015261010084015261012083019390935261014082015261016001905180910390f35b341561019257600080fd5b6101a9600435600160a060020a036024351661041d565b60405190815260200160405180910390f35b34156101c657600080fd5b6101d1600435610457565b005b34156101de57600080fd5b6101f8600435600160a060020a0360243516604435610477565b604051901515815260200160405180910390f35b341561021757600080fd5b6101a9600160a060020a03600480358216916024803582169260443592606435926084359260a4359260c4359260e43592610104359182019291013590610124351661092e565b341561026957600080fd5b6101a9600435600160a060020a0360243516610eb3565b341561028b57600080fd5b6101d1600435610f07565b34156102a157600080fd5b6101d1600435610fd8565b34156102b757600080fd5b6102bf6110c6565b604051600160a060020a03909116815260200160405180910390f35b34156102e657600080fd5b61011f6004356110d5565b34156102fc57600080fd5b6101d160043561113c565b341561031257600080fd5b6101d1600160a060020a0360043516611388565b341561033157600080fd5b6101a960048035600160a060020a0390811691602480358316926044351691606435916084359160a4359160c4359160e43591610104359161012435918201910135611423565b341561038357600080fd5b6101a96116f4565b60036020526000908152604090208054600190910154600160a060020a031682565b6002602081815260009384526040808520909152918352912080546001820154928201546003830154600484015460058501546006860154600787015460088801546009890154600a90990154600160a060020a039889169a89169997909816979596949593949293919290918b565b60008282604051918252600160a060020a03166c010000000000000000000000000260208201526034016040518091039020905092915050565b60005433600160a060020a0390811691161461047257600080fd5b600155565b6000610481611ad1565b60008033600160a060020a03166003600061049b896116fa565b8152602081019190915260400160002060010154600160a060020a0316146104c257600080fd5b85600160a060020a03167fe3ffe1ff78db5e8e17808022d93a5d6c96c76800746394b762f255acbe96b00b888760405191825260208201526040908101905180910390a2600160a060020a03861660009081526002602090815260408083208a84529091529081902090610160905190810160405290816000820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016001820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016002820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a8201548152505092506002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008860001916600019168152602001908152602001600020600080820160006101000a815490600160a060020a0302191690556001820160006101000a815490600160a060020a0302191690556002820160006101000a815490600160a060020a0302191690556003820160009055600482016000905560058201600090556006820160009055600782016000905560088201600090556009820160009055600a820160009055505084600114156109215785600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561073557600080fd5b6102c65a03f1151561074657600080fd5b50505060405180519050915061076b8360c0015184608001519063ffffffff6117db16565b905081600160a060020a0316636407e43282308960006040516020015260405160e060020a63ffffffff86160281526004810193909352600160a060020a039182166024840152166044820152606401602060405180830381600087803b15156107d457600080fd5b6102c65a03f115156107e557600080fd5b50505060405180515050600554600090815260046020526040902083908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0391909116178155602082015160018201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055604082015160028201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090155610140820151600a909101555060058054600181019091557f7f4395349c6d693bbcef2c3c3133c966a84bf7d8f720d00fc21c9290a200acf760405160405180910390a25b5060019695505050505050565b6000610938611b47565b60008060036000610948876116fa565b81526020810191909152604090810160002090805190810160405281548152600190910154600160a060020a03166020820190815290935051600160a060020a0316630905c9f96002855188303360006040516020015260405160e060020a63ffffffff881602815260048101959095526024850193909352600160a060020a0391821660448501528116606484015216608482015260a401602060405180830381600087803b15156109fa57600080fd5b6102c65a03f11515610a0b57600080fd5b505050604051805192505085881015610a2057fe5b60008b11610a2a57fe5b5060005b85811015610aa757600160a060020a03851660009081526002602090815260408083208584529091528120600191600b90910190898985818110610a6e57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff1916911515919091179055600101610a2e565b84600160a060020a031663e1758bd86000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610aed57600080fd5b6102c65a03f11515610afe57600080fd5b505050604051805190506002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060000160006101000a815481600160a060020a030219169083600160a060020a031602179055508e6002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060010160006101000a815481600160a060020a030219169083600160a060020a031602179055508d6002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060020160006101000a815481600160a060020a030219169083600160a060020a031602179055508c6002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600301819055508b6002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600401819055508a6002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060050181905550896002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060060181905550886002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060070181905550876002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600801819055508260200151600160a060020a031663339e23d18360013360006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610e4957600080fd5b6102c65a03f11515610e5a57600080fd5b50505060405180515050600160a060020a0385167f414e0a2de8305e1fdf5cd7bd449e853c9e04644021b6c51a686a80ca1909e8fd8360405190815260200160405180910390a2509d9c50505050505050505050505050565b600080610ec0848461041d565b6000818152600360205260409020858155600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03861617905591508190505b5092915050565b6000818152600460209081526040808320600160a060020a0333168452600b01909152812054829060ff161515610f3d57600080fd5b6000838152600460209081526040808320600160a060020a0333168452600c81019092529091205490925060ff161515610f7657600080fd5b600160a060020a0333166000818152600c8401602052604090819020805460ff19169055600a8401805460001901905584907f1df7a752240c027cfb74557fd4dac3f5e69b4da33fd2bf627af62bec9e8293c0905160405180910390a3505050565b6000818152600460209081526040808320600160a060020a0333168452600b01909152812054829060ff16151561100e57600080fd5b6000838152600460209081526040808320600160a060020a0333168452600c81019092529091205490925060ff161561104657600080fd5b600160a060020a0333166000818152600c8401602052604090819020805460ff19166001908117909155600a85018054909101905584907f034fb4ee0593caf676b3d6d46cc590311e4119cdb1349abb1502647c4076fce2905160405180910390a3816008015482600a015414156110c1576110c18361180d565b505050565b600054600160a060020a031681565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006860154600787015460088801546009890154600a90990154600160a060020a039889169a978916999890961697949593949293919290918b565b611144611ad1565b60008281526004602052604081206001015481908190859033600160a060020a0390811691161461117457600080fd5b6000868152600460205260409081902090610160905190810160409081528254600160a060020a039081168352600184015481166020840152600284015416908201526003820154606082015260048201546080820152600582015460a08201908152600683015460c0830152600783015460e083015260088301546101008301526009830154610120830152600a90920154610140820152955061123590516112298760600151439063ffffffff611a9916565b9063ffffffff611aab16565b93508460e0015184101561124557fe5b8460c0015184106112715761126a8561012001518660c001519063ffffffff611a9916565b925061128a565b611287856101200151859063ffffffff611a9916565b92505b6000868152600460205260409020600901546112ac908463ffffffff611ac216565b6000878152600460205260409020600901556112d36080860151849063ffffffff6117db16565b91508451600160a060020a031663a9059cbb86602001518460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561133757600080fd5b6102c65a03f1151561134857600080fd5b5050506040518051905050857f3fe43822de4d3a1b02686a8e69e74f7a32cf7667d2a432a27326ec43a3b3bfd760405160405180910390a2505050505050565b60005433600160a060020a039081169116146113a357600080fd5b600160a060020a03811615156113b857600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080808386101561143157fe5b6000891161143b57fe5b61144b8a8963ffffffff6117db16565b91508d600160a060020a03166323b872dd33308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156114b757600080fd5b6102c65a03f115156114c857600080fd5b50505060405180519050508d60046000600554815260200190815260200160002060000160006101000a815481600160a060020a030219169083600160a060020a031602179055508c60046000600554815260200190815260200160002060010160006101000a815481600160a060020a030219169083600160a060020a031602179055508b60046000600554815260200190815260200160002060020160006101000a815481600160a060020a030219169083600160a060020a031602179055508a6004600060055481526020019081526020016000206003018190555089600460006005548152602001908152602001600020600401819055508860046000600554815260200190815260200160002060050181905550876004600060055481526020019081526020016000206006018190555086600460006005548152602001908152602001600020600701819055508560046000600554815260200190815260200160002060080181905550600090505b838110156116a4576005546000908152600460205260408120600191600b9091019087878581811061166b57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff191691151591909117905560010161163d565b60058054600181019091557f7f4395349c6d693bbcef2c3c3133c966a84bf7d8f720d00fc21c9290a200acf760405160405180910390a25050600554600019019c9b505050505050505050505050565b60015481565b600081600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561174257600080fd5b6102c65a03f1151561175357600080fd5b50505060405180519050600160a060020a0316631c4d5608308460006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b15156117bb57600080fd5b6102c65a03f115156117cc57600080fd5b50505060405180519392505050565b6000808315156117ee5760009150610f00565b508282028284828115156117fe57fe5b041461180657fe5b9392505050565b611815611ad1565b6000828152600460205260408082208291610160905190810160405290816000820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016001820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016002820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a82015481525050925060046000858152602001908152602001600020600080820160006101000a815490600160a060020a0302191690556001820160006101000a815490600160a060020a0302191690556002820160006101000a815490600160a060020a0302191690556003820160009055600482016000905560058201600090556006820160009055600782016000905560088201600090556009820160009055600a82016000905550506119cf8361012001518460c001519063ffffffff611a9916565b91506119e68360800151839063ffffffff6117db16565b90508251600160a060020a031663a9059cbb84604001518360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611a4a57600080fd5b6102c65a03f11515611a5b57600080fd5b5050506040518051905050837f9f1c1e78870ba44a152915bdd80b589c6b72f765faf85ba3b867f0b3ce38dfc760405160405180910390a250505050565b600082821115611aa557fe5b50900390565b6000808284811515611ab957fe5b04949350505050565b60008282018381101561180657fe5b610160604051908101604052806000600160a060020a031681526020016000600160a060020a031681526020016000600160a060020a0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040805190810160405260008082526020820152905600a165627a7a7230582045e771d9b172eac2fd00063fa7147a9c385f9b26c9dc30773997d53167fa5e280029",
  "deployedBytecode": "0x6060604052600436106100c15763ffffffff60e060020a6000350416630250680481146100c657806307377bd6146100fd5780632453732a146101875780632ac2af53146101bb578063310ce4e2146101d357806367b603901461020c57806368e14dac1461025e57806389d75221146102805780638b087f3f146102965780638da5cb5b146102ac578063bd14de96146102db578063ce3f865f146102f1578063f2fde38b14610307578063f76f3fb114610326578063f98e87ba14610378575b600080fd5b34156100d157600080fd5b6100dc60043561038b565b604051918252600160a060020a031660208201526040908101905180910390f35b341561010857600080fd5b61011f600160a060020a03600435166024356103ad565b604051600160a060020a039b8c168152998b1660208b0152979099166040808a01919091526060890196909652608088019490945260a087019290925260c086015260e085015261010084015261012083019390935261014082015261016001905180910390f35b341561019257600080fd5b6101a9600435600160a060020a036024351661041d565b60405190815260200160405180910390f35b34156101c657600080fd5b6101d1600435610457565b005b34156101de57600080fd5b6101f8600435600160a060020a0360243516604435610477565b604051901515815260200160405180910390f35b341561021757600080fd5b6101a9600160a060020a03600480358216916024803582169260443592606435926084359260a4359260c4359260e43592610104359182019291013590610124351661092e565b341561026957600080fd5b6101a9600435600160a060020a0360243516610eb3565b341561028b57600080fd5b6101d1600435610f07565b34156102a157600080fd5b6101d1600435610fd8565b34156102b757600080fd5b6102bf6110c6565b604051600160a060020a03909116815260200160405180910390f35b34156102e657600080fd5b61011f6004356110d5565b34156102fc57600080fd5b6101d160043561113c565b341561031257600080fd5b6101d1600160a060020a0360043516611388565b341561033157600080fd5b6101a960048035600160a060020a0390811691602480358316926044351691606435916084359160a4359160c4359160e43591610104359161012435918201910135611423565b341561038357600080fd5b6101a96116f4565b60036020526000908152604090208054600190910154600160a060020a031682565b6002602081815260009384526040808520909152918352912080546001820154928201546003830154600484015460058501546006860154600787015460088801546009890154600a90990154600160a060020a039889169a89169997909816979596949593949293919290918b565b60008282604051918252600160a060020a03166c010000000000000000000000000260208201526034016040518091039020905092915050565b60005433600160a060020a0390811691161461047257600080fd5b600155565b6000610481611ad1565b60008033600160a060020a03166003600061049b896116fa565b8152602081019190915260400160002060010154600160a060020a0316146104c257600080fd5b85600160a060020a03167fe3ffe1ff78db5e8e17808022d93a5d6c96c76800746394b762f255acbe96b00b888760405191825260208201526040908101905180910390a2600160a060020a03861660009081526002602090815260408083208a84529091529081902090610160905190810160405290816000820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016001820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016002820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a8201548152505092506002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008860001916600019168152602001908152602001600020600080820160006101000a815490600160a060020a0302191690556001820160006101000a815490600160a060020a0302191690556002820160006101000a815490600160a060020a0302191690556003820160009055600482016000905560058201600090556006820160009055600782016000905560088201600090556009820160009055600a820160009055505084600114156109215785600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561073557600080fd5b6102c65a03f1151561074657600080fd5b50505060405180519050915061076b8360c0015184608001519063ffffffff6117db16565b905081600160a060020a0316636407e43282308960006040516020015260405160e060020a63ffffffff86160281526004810193909352600160a060020a039182166024840152166044820152606401602060405180830381600087803b15156107d457600080fd5b6102c65a03f115156107e557600080fd5b50505060405180515050600554600090815260046020526040902083908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0391909116178155602082015160018201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055604082015160028201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090155610140820151600a909101555060058054600181019091557f7f4395349c6d693bbcef2c3c3133c966a84bf7d8f720d00fc21c9290a200acf760405160405180910390a25b5060019695505050505050565b6000610938611b47565b60008060036000610948876116fa565b81526020810191909152604090810160002090805190810160405281548152600190910154600160a060020a03166020820190815290935051600160a060020a0316630905c9f96002855188303360006040516020015260405160e060020a63ffffffff881602815260048101959095526024850193909352600160a060020a0391821660448501528116606484015216608482015260a401602060405180830381600087803b15156109fa57600080fd5b6102c65a03f11515610a0b57600080fd5b505050604051805192505085881015610a2057fe5b60008b11610a2a57fe5b5060005b85811015610aa757600160a060020a03851660009081526002602090815260408083208584529091528120600191600b90910190898985818110610a6e57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff1916911515919091179055600101610a2e565b84600160a060020a031663e1758bd86000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610aed57600080fd5b6102c65a03f11515610afe57600080fd5b505050604051805190506002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060000160006101000a815481600160a060020a030219169083600160a060020a031602179055508e6002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060010160006101000a815481600160a060020a030219169083600160a060020a031602179055508d6002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060020160006101000a815481600160a060020a030219169083600160a060020a031602179055508c6002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600301819055508b6002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600401819055508a6002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060050181905550896002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060060181905550886002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060070181905550876002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600801819055508260200151600160a060020a031663339e23d18360013360006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610e4957600080fd5b6102c65a03f11515610e5a57600080fd5b50505060405180515050600160a060020a0385167f414e0a2de8305e1fdf5cd7bd449e853c9e04644021b6c51a686a80ca1909e8fd8360405190815260200160405180910390a2509d9c50505050505050505050505050565b600080610ec0848461041d565b6000818152600360205260409020858155600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03861617905591508190505b5092915050565b6000818152600460209081526040808320600160a060020a0333168452600b01909152812054829060ff161515610f3d57600080fd5b6000838152600460209081526040808320600160a060020a0333168452600c81019092529091205490925060ff161515610f7657600080fd5b600160a060020a0333166000818152600c8401602052604090819020805460ff19169055600a8401805460001901905584907f1df7a752240c027cfb74557fd4dac3f5e69b4da33fd2bf627af62bec9e8293c0905160405180910390a3505050565b6000818152600460209081526040808320600160a060020a0333168452600b01909152812054829060ff16151561100e57600080fd5b6000838152600460209081526040808320600160a060020a0333168452600c81019092529091205490925060ff161561104657600080fd5b600160a060020a0333166000818152600c8401602052604090819020805460ff19166001908117909155600a85018054909101905584907f034fb4ee0593caf676b3d6d46cc590311e4119cdb1349abb1502647c4076fce2905160405180910390a3816008015482600a015414156110c1576110c18361180d565b505050565b600054600160a060020a031681565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006860154600787015460088801546009890154600a90990154600160a060020a039889169a978916999890961697949593949293919290918b565b611144611ad1565b60008281526004602052604081206001015481908190859033600160a060020a0390811691161461117457600080fd5b6000868152600460205260409081902090610160905190810160409081528254600160a060020a039081168352600184015481166020840152600284015416908201526003820154606082015260048201546080820152600582015460a08201908152600683015460c0830152600783015460e083015260088301546101008301526009830154610120830152600a90920154610140820152955061123590516112298760600151439063ffffffff611a9916565b9063ffffffff611aab16565b93508460e0015184101561124557fe5b8460c0015184106112715761126a8561012001518660c001519063ffffffff611a9916565b925061128a565b611287856101200151859063ffffffff611a9916565b92505b6000868152600460205260409020600901546112ac908463ffffffff611ac216565b6000878152600460205260409020600901556112d36080860151849063ffffffff6117db16565b91508451600160a060020a031663a9059cbb86602001518460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561133757600080fd5b6102c65a03f1151561134857600080fd5b5050506040518051905050857f3fe43822de4d3a1b02686a8e69e74f7a32cf7667d2a432a27326ec43a3b3bfd760405160405180910390a2505050505050565b60005433600160a060020a039081169116146113a357600080fd5b600160a060020a03811615156113b857600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080808386101561143157fe5b6000891161143b57fe5b61144b8a8963ffffffff6117db16565b91508d600160a060020a03166323b872dd33308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156114b757600080fd5b6102c65a03f115156114c857600080fd5b50505060405180519050508d60046000600554815260200190815260200160002060000160006101000a815481600160a060020a030219169083600160a060020a031602179055508c60046000600554815260200190815260200160002060010160006101000a815481600160a060020a030219169083600160a060020a031602179055508b60046000600554815260200190815260200160002060020160006101000a815481600160a060020a030219169083600160a060020a031602179055508a6004600060055481526020019081526020016000206003018190555089600460006005548152602001908152602001600020600401819055508860046000600554815260200190815260200160002060050181905550876004600060055481526020019081526020016000206006018190555086600460006005548152602001908152602001600020600701819055508560046000600554815260200190815260200160002060080181905550600090505b838110156116a4576005546000908152600460205260408120600191600b9091019087878581811061166b57fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff191691151591909117905560010161163d565b60058054600181019091557f7f4395349c6d693bbcef2c3c3133c966a84bf7d8f720d00fc21c9290a200acf760405160405180910390a25050600554600019019c9b505050505050505050505050565b60015481565b600081600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561174257600080fd5b6102c65a03f1151561175357600080fd5b50505060405180519050600160a060020a0316631c4d5608308460006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b15156117bb57600080fd5b6102c65a03f115156117cc57600080fd5b50505060405180519392505050565b6000808315156117ee5760009150610f00565b508282028284828115156117fe57fe5b041461180657fe5b9392505050565b611815611ad1565b6000828152600460205260408082208291610160905190810160405290816000820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016001820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016002820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a82015481525050925060046000858152602001908152602001600020600080820160006101000a815490600160a060020a0302191690556001820160006101000a815490600160a060020a0302191690556002820160006101000a815490600160a060020a0302191690556003820160009055600482016000905560058201600090556006820160009055600782016000905560088201600090556009820160009055600a82016000905550506119cf8361012001518460c001519063ffffffff611a9916565b91506119e68360800151839063ffffffff6117db16565b90508251600160a060020a031663a9059cbb84604001518360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611a4a57600080fd5b6102c65a03f11515611a5b57600080fd5b5050506040518051905050837f9f1c1e78870ba44a152915bdd80b589c6b72f765faf85ba3b867f0b3ce38dfc760405160405180910390a250505050565b600082821115611aa557fe5b50900390565b6000808284811515611ab957fe5b04949350505050565b60008282018381101561180657fe5b610160604051908101604052806000600160a060020a031681526020016000600160a060020a031681526020016000600160a060020a0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040805190810160405260008082526020820152905600a165627a7a7230582045e771d9b172eac2fd00063fa7147a9c385f9b26c9dc30773997d53167fa5e280029",
  "sourceMap": "220:12904:30:-;;;2327:34;;;;;;;;501:5:35;:18;;-1:-1:-1;;;;;509:10:35;501:18;-1:-1:-1;;;;;;501:18:35;;;;;;220:12904:30;;;;;;",
  "deployedSourceMap": "220:12904:30:-;;;;;;;;;-1:-1:-1;;;220:12904:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1746:46;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1746:46:30;;;;;;;;;;;;;;;;1566:70;;;;;;;;;;-1:-1:-1;;;;;1566:70:30;;;;;;;;;;-1:-1:-1;;;;;1566:70:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8401:189;;;;;;;;;;;;-1:-1:-1;;;;;8401:189:30;;;;;;;;;;;;;;;;;;;;452:157:27;;;;;;;;;;;;;;;;8970:1069:30;;;;;;;;;;;;-1:-1:-1;;;;;8970:1069:30;;;;;;;;;;;;;;;;;;;;;;;;3153:1926;;;;;;;;;;-1:-1:-1;;;;;3153:1926:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7849:334;;;;;;;;;;;;-1:-1:-1;;;;;7849:334:30;;;;;10907:451;;;;;;;;;;;;;;10162:614;;;;;;;;;;;;;;238:20:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:20:35;;;;;;;;;;;;;;1840:42:30;;;;;;;;;;;;;;11479:1040;;;;;;;;;;;;;;834:169:35;;;;;;;;;;-1:-1:-1;;;;;834:169:35;;;;;5862:1745:30;;;;;;;;;;;;;-1:-1:-1;;;;;5862:1745:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;345:31:27;;;;;;;;;;;;1746:46:30;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1746:46:30;;:::o;1566:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1566:70:30;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8401:189::-;8518:7;8560:11;8573:8;8550:32;;;;;-1:-1:-1;;;;;8550:32:30;;;;;;;;;;;;;;;;8541:42;;8401:189;;;;:::o;452:157:27:-;654:5:35;;640:10;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;566:16:27;:36;452:157::o;8970:1069:30:-;9052:4;9274:34;;:::i;:::-;9570:30;9661:17;9202:10;-1:-1:-1;;;;;9134:78:30;:10;:56;9145:44;9180:7;9145:27;:44::i;:::-;9134:56;;;;;;;;;;;;;:64;;;-1:-1:-1;;;;;9134:64:30;:78;9126:87;;;;;;9234:7;-1:-1:-1;;;;;9224:39:30;;9243:11;9256:6;9224:39;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9311:26:30;;;;;;:17;:26;;;;;;;;:39;;;;;;;;;;;9274:76;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9274:76:30;-1:-1:-1;;;;;9274:76:30;-1:-1:-1;;;;;9274:76:30;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9274:76:30;-1:-1:-1;;;;;9274:76:30;-1:-1:-1;;;;;9274:76:30;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9274:76:30;-1:-1:-1;;;;;9274:76:30;-1:-1:-1;;;;;9274:76:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9367:17;:26;9385:7;-1:-1:-1;;;;;9367:26:30;-1:-1:-1;;;;;9367:26:30;;;;;;;;;;;;:39;9394:11;9367:39;;;;;;;;;;;;;;;;;;9360:46;;;;;;;;;-1:-1:-1;;;;;9360:46:30;;;;;;;;;;;;;;-1:-1:-1;;;;;9360:46:30;;;;;;;;;;;;;;-1:-1:-1;;;;;9360:46:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9462:6;9472:1;9462:11;9458:554;;;9630:7;-1:-1:-1;;;;;9623:21:30;;:23;;;;;;;;;;;-1:-1:-1;;;9623:23:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9570:77;;9681:75;9719:17;:36;;;9681:17;:33;;;:37;:75;:37;:75;:::i;:::-;9661:95;;9770:10;-1:-1:-1;;;;;9770:21:30;;9792:12;9806:4;9811:7;9770:49;;;;;;;;-1:-1:-1;;;9770:49:30;;;;;;;;;;;;;-1:-1:-1;;;;;9770:49:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9844:17:30;;9833:29;;;;:10;:29;;;;;9865:17;;;9833:49;;;-1:-1:-1;;9833:49:30;-1:-1:-1;;;;;9833:49:30;;;;;;;;;;;;;;;;-1:-1:-1;;9833:49:30;-1:-1:-1;;;;;9833:49:30;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9833:49:30;-1:-1:-1;;;;;9833:49:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9896:17:30;:19;;;;;;;;9963:39;;;;;;;;;;9458:554;-1:-1:-1;10028:4:30;;8970:1069;-1:-1:-1;;;;;;8970:1069:30:o;3153:1926::-;3533:7;3580:24;;:::i;:::-;3665:18;3929:8;3607:10;:48;3618:36;3646:7;3618:27;:36::i;:::-;3607:48;;;;;;;;;;;;;;;;;3580:75;;;;;;;;;;;;;;;-1:-1:-1;;;;;3580:75:30;;;;;;;;;-1:-1:-1;3686:14:30;-1:-1:-1;;;;;3686:22:30;;3709:1;3712:6;:17;3731:7;3760:4;3766:10;3686:91;;;;;;;;-1:-1:-1;;;3686:91:30;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3686:91:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3794:46:30;;;;3787:54;;;;3874:1;3858:17;;3851:25;;;;-1:-1:-1;3940:1:30;3924:150;3943:24;;;3924:150;;;-1:-1:-1;;;;;3990:26:30;;;;;;:17;:26;;;;;;;;:38;;;;;;;;4059:4;;3990:46;;;;;4037:13;;4051:3;4037:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4037:18:30;3990:66;;-1:-1:-1;3990:66:30;;;;;;;;-1:-1:-1;3990:66:30;:73;;-1:-1:-1;;3990:73:30;;;;;;;;;;-1:-1:-1;3969:5:30;3924:150;;;4166:7;-1:-1:-1;;;;;4159:27:30;;:29;;;;;;;;;;;-1:-1:-1;;;4159:29:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4112:17;:26;4130:7;-1:-1:-1;;;;;4112:26:30;-1:-1:-1;;;;;4112:26:30;;;;;;;;;;;;:38;4139:10;4112:38;;;;;;;;;;;;;;;;;:44;;;:76;;;;;-1:-1:-1;;;;;4112:76:30;;;;;-1:-1:-1;;;;;4112:76:30;;;;;;4251:12;4198:17;:26;4216:7;-1:-1:-1;;;;;4198:26:30;-1:-1:-1;;;;;4198:26:30;;;;;;;;;;;;:38;4225:10;4198:38;;;;;;;;;;;;;;;;;:50;;;:65;;;;;-1:-1:-1;;;;;4198:65:30;;;;;-1:-1:-1;;;;;4198:65:30;;;;;;4336:22;4273:17;:26;4291:7;-1:-1:-1;;;;;4273:26:30;-1:-1:-1;;;;;4273:26:30;;;;;;;;;;;;:38;4300:10;4273:38;;;;;;;;;;;;;;;;;:60;;;:85;;;;;-1:-1:-1;;;;;4273:85:30;;;;;-1:-1:-1;;;;;4273:85:30;;;;;;4423:14;4368:17;:26;4386:7;-1:-1:-1;;;;;4368:26:30;-1:-1:-1;;;;;4368:26:30;;;;;;;;;;;;:38;4395:10;4368:38;;;;;;;;;;;;;;;;;:52;;:69;;;;4504:16;4447:17;:26;4465:7;-1:-1:-1;;;;;4447:26:30;-1:-1:-1;;;;;4447:26:30;;;;;;;;;;;;:38;4474:10;4447:38;;;;;;;;;;;;;;;;;:54;;:73;;;;4584:13;4530:17;:26;4548:7;-1:-1:-1;;;;;4530:26:30;-1:-1:-1;;;;;4530:26:30;;;;;;;;;;;;:38;4557:10;4530:38;;;;;;;;;;;;;;;;;:51;;:67;;;;4667:19;4607:17;:26;4625:7;-1:-1:-1;;;;;4607:26:30;-1:-1:-1;;;;;4607:26:30;;;;;;;;;;;;:38;4634:10;4607:38;;;;;;;;;;;;;;;;;:57;;:79;;;;4752:15;4696:17;:26;4714:7;-1:-1:-1;;;;;4696:26:30;-1:-1:-1;;;;;4696:26:30;;;;;;;;;;;;:38;4723:10;4696:38;;;;;;;;;;;;;;;;;:53;;:71;;;;4840:22;4777:17;:26;4795:7;-1:-1:-1;;;;;4777:26:30;-1:-1:-1;;;;;4777:26:30;;;;;;;;;;;;:38;4804:10;4777:38;;;;;;;;;;;;;;;;;:60;;:85;;;;4873:6;:14;;;-1:-1:-1;;;;;4873:24:30;;4898:10;4910:1;4913:10;4873:51;;;;;;;;-1:-1:-1;;;4873:51:30;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4873:51:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;5007:38:30;;;5034:10;5007:38;;;;;;;;;;;;;;-1:-1:-1;5062:10:30;3153:1926;-1:-1:-1;;;;;;;;;;;;;3153:1926:30:o;7849:334::-;7957:7;7980:18;8001:40;8019:11;8032:8;8001:17;:40::i;:::-;8051:22;;;;:10;:22;;;;;:47;;;8108:30;;:41;;-1:-1:-1;;8108:41:30;-1:-1:-1;;;;;8108:41:30;;;;;8051:22;-1:-1:-1;8051:22:30;;-1:-1:-1;7849:334:30;;;;;;:::o;10907:451::-;11005:27;2026:24;;;:10;:24;;;;;;;;-1:-1:-1;;;;;2059:10:30;2026:44;;;:32;;:44;;;;;;10981:12;;2026:44;;2018:53;;;;;;;;11035:24;;;;:10;:24;;;;;;;;-1:-1:-1;;;;;11141:10:30;11112:40;;;:28;;;:40;;;;;;;11035:24;;-1:-1:-1;11112:40:30;;11104:49;;;;;;;;-1:-1:-1;;;;;11222:10:30;11193:40;11236:5;11193:40;;;:28;;;:40;;;;;;;:48;;-1:-1:-1;;11193:48:30;;;11251:35;;;:37;;-1:-1:-1;;11251:37:30;;;11327:12;;11299:52;;;;;;;;;;10907:451;;;:::o;10162:614::-;10254:27;2026:24;;;:10;:24;;;;;;;;-1:-1:-1;;;;;2059:10:30;2026:44;;;:32;;:44;;;;;;10230:12;;2026:44;;2018:53;;;;;;;;10284:24;;;;:10;:24;;;;;;;;-1:-1:-1;;;;;10399:10:30;10370:40;;;:28;;;:40;;;;;;;10284:24;;-1:-1:-1;10370:40:30;;10368:42;10360:51;;;;;;-1:-1:-1;;;;;10468:10:30;10439:40;;;;;:28;;;:40;;;;;;;:47;;-1:-1:-1;;10439:47:30;10482:4;10439:47;;;;;;10496:35;;;:37;;;;;;;10566:12;;10544:46;;;;;;;;;;10683:9;:31;;;10644:9;:35;;;:70;10640:130;;;10730:29;10746:12;10730:15;:29::i;:::-;10162:614;;;:::o;238:20:35:-;;;-1:-1:-1;;;;;238:20:35;;:::o;1840:42:30:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1840:42:30;;;;;;;;;;;;;;;;;;;;;;;;:::o;11479:1040::-;11562:26;;:::i;:::-;11625:29;2212:24;;;:10;:24;;;;;:36;;;11625:29;;;;2212:24;;2252:10;-1:-1:-1;;;;;2212:50:30;;;:36;;:50;2204:59;;;;;;11591:24;;;;:10;:24;;;;;;;;11562:53;;;;;;;;;;;;-1:-1:-1;;;;;11562:53:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11657:71:30;;11705:22;11658:41;11675:9;:23;;;11658:12;;:41;:16;:41;:::i;:::-;11657:47;:71;:47;:71;:::i;:::-;11625:103;;11773:9;:24;;;11745:52;;;11738:60;;;;11903:9;:28;;;11875:56;;11871:264;;11962:60;11995:9;:26;;;11962:9;:28;;;:32;:60;:32;:60;:::i;:::-;11947:75;;11871:264;;;12068:56;12097:9;:26;;;12068:24;;:56;:28;:56;:::i;:::-;12053:71;;11871:264;12220:24;;;;:10;:24;;;;;:41;;;:59;;12266:12;12220:59;:45;:59;:::i;:::-;12176:24;;;;:10;:24;;;;;:41;;:103;12335:43;12352:25;;;;12335:12;;:43;:16;:43;:::i;:::-;12311:67;-1:-1:-1;12388:9:30;:15;-1:-1:-1;;;;;12388:24:30;;12413:9;:21;;;12436:16;12388:65;;;;;;;;-1:-1:-1;;;12388:65:30;;;;;;-1:-1:-1;;;;;12388:65:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12499:12;12491:21;;;;;;;;;;11479:1040;;;;;;:::o;834:169:35:-;654:5;;640:10;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;910:22:35;;;;902:31;;;;;;960:5;;-1:-1:-1;;;;;939:37:35;;;;960:5;939:37;;;;;;;;;;982:5;:16;;-1:-1:-1;;982:16:35;-1:-1:-1;;;;;982:16:35;;;;;;;;;;834:169::o;5862:1745:30:-;6254:4;;;6281:46;;;;6274:54;;;;6361:1;6345:17;;6338:25;;;;6418:41;:16;6439:19;6418:41;:20;:41;:::i;:::-;6399:60;;6469:6;-1:-1:-1;;;;;6469:19:30;;6489:10;6501:4;6507:11;6469:50;;;;;;;;-1:-1:-1;;;6469:50:30;;;;;;-1:-1:-1;;;;;6469:50:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6597:6;6559:10;:29;6570:17;;6559:29;;;;;;;;;;;:35;;;:44;;;;;-1:-1:-1;;;;;6559:44:30;;;;;-1:-1:-1;;;;;6559:44:30;;;;;;6657:12;6613:10;:29;6624:17;;6613:29;;;;;;;;;;;:41;;;:56;;;;;-1:-1:-1;;;;;6613:56:30;;;;;-1:-1:-1;;;;;6613:56:30;;;;;;6733:22;6679:10;:29;6690:17;;6679:29;;;;;;;;;;;:51;;;:76;;;;;-1:-1:-1;;;;;6679:76:30;;;;;-1:-1:-1;;;;;6679:76:30;;;;;;6811:14;6765:10;:29;6776:17;;6765:29;;;;;;;;;;;:43;;:60;;;;6883:16;6835:10;:29;6846:17;;6835:29;;;;;;;;;;;:45;;:64;;;;6954:13;6909:10;:29;6920:17;;6909:29;;;;;;;;;;;:42;;:58;;;;7028:19;6977:10;:29;6988:17;;6977:29;;;;;;;;;;;:48;;:70;;;;7104:15;7057:10;:29;7068:17;;7057:29;;;;;;;;;;;:44;;:62;;;;7183:22;7129:10;:29;7140:17;;7129:29;;;;;;;;;;;:51;;:76;;;;7270:1;7259:12;;7254:141;7273:24;;;7254:141;;;7331:17;;7320:29;;;;:10;:29;;;;;7380:4;;7320:37;;;;;7358:13;;7372:3;7358:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:18:30;7320:57;;-1:-1:-1;7320:57:30;;;;;;;;-1:-1:-1;7320:57:30;:64;;-1:-1:-1;;7320:64:30;;;;;;;;;;-1:-1:-1;7299:5:30;7254:141;;;7450:17;:19;;;;;;;;7524:39;;;;;;;;;;-1:-1:-1;;7580:17:30;;-1:-1:-1;;7580:19:30;;5862:1745;-1:-1:-1;;;;;;;;;;;;5862:1745:30:o;345:31:27:-;;;;:::o;704:191::-;783:7;829;-1:-1:-1;;;;;829:13:27;;:15;;;;;;;;;;;-1:-1:-1;;;829:15:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;809:56:27;;866:4;879:7;809:79;;;;;;;;-1:-1:-1;;;809:79:27;;;;;;-1:-1:-1;;;;;809:79:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;704:191;-1:-1:-1;;;704:191:27:o;138:173:33:-;196:7;;215:6;;211:35;;;238:1;231:8;;;;211:35;-1:-1:-1;263:5:33;;;267:1;263;:5;281;;;;;;;;:10;274:18;;;;305:1;138:173;-1:-1:-1;;;138:173:33:o;12644:478:30:-;12707:26;;:::i;:::-;12812:16;12736:24;;;:10;:24;;;;;;12812:16;;12707:53;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12707:53:30;-1:-1:-1;;;;;12707:53:30;-1:-1:-1;;;;;12707:53:30;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12707:53:30;-1:-1:-1;;;;;12707:53:30;-1:-1:-1;;;;;12707:53:30;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12707:53:30;-1:-1:-1;;;;;12707:53:30;-1:-1:-1;;;;;12707:53:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12778:10;:24;12789:12;12778:24;;;;;;;;;;;;12770:32;;;;;;;;;-1:-1:-1;;;;;12770:32:30;;;;;;;;;;;;;;-1:-1:-1;;;;;12770:32:30;;;;;;;;;;;;;;-1:-1:-1;;;;;12770:32:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12831:60;12864:9;:26;;;12831:9;:28;;;:32;:60;:32;:60;:::i;:::-;12812:79;;12919:42;12935:9;:25;;;12919:11;;:42;:15;:42;:::i;:::-;12901:60;-1:-1:-1;12971:9:30;:15;-1:-1:-1;;;;;12971:24:30;;12996:9;:31;;;13029:10;12971:69;;;;;;;;-1:-1:-1;;;12971:69:30;;;;;;-1:-1:-1;;;;;12971:69:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13102:12;13086:29;;;;;;;;;;12644:478;;;;:::o;584:110:33:-;642:7;664:6;;;;657:14;;;;-1:-1:-1;684:5:33;;;584:110::o;315:265::-;373:7;462:9;478:1;474;:5;;;;;;;;;315:265;-1:-1:-1;;;;315:265:33:o;698:129::-;756:7;783:5;;;801:6;;;;794:14;;;220:12904:30;;;;;;;;;;;-1:-1:-1;;;;;220:12904:30;;;;;;-1:-1:-1;;;;;220:12904:30;;;;;;-1:-1:-1;;;;;220:12904:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.18;\n\nimport \"../VotingMachines/IntVoteInterface.sol\";\nimport \"./UniversalScheme.sol\";\n\n\n/**\n * @title A scheme for vesting.\n * @dev Can be used without organization just as a vesting component.\n */\n\ncontract VestingScheme is UniversalScheme, ExecutableInterface {\n    using SafeMath for uint;\n\n    event ProposalExecuted(address indexed _avatar);\n    event AgreementProposal(address indexed _avatar, bytes32 _proposalId);\n    event Execution(address indexed _avatar, bytes32 _proposalId, int _result);\n    event NewVestedAgreement(uint indexed _agreementId);\n    event SignToCancelAgreement(uint indexed _agreementId, address indexed _signer);\n    event RevokeSignToCancelAgreement(uint indexed _agreementId, address indexed _signer);\n    event AgreementCancel(uint indexed _agreementId);\n    event Collect(uint indexed _agreementId);\n\n\n    // The data for each vested agreement:\n    struct Agreement {\n        StandardToken token;\n        address beneficiary;\n        address returnOnCancelAddress;\n        uint startingBlock;\n        uint amountPerPeriod;\n        uint periodLength;\n        uint numOfAgreedPeriods;\n        uint cliffInPeriods;\n        uint signaturesReqToCancel;\n        uint collectedPeriods;\n        uint signaturesReceivedCounter;\n        mapping(address=>bool) signers;\n        mapping(address=>bool) signaturesReceived;\n    }\n\n\n    struct Parameters {\n        bytes32 voteParams;\n        IntVoteInterface intVote;\n    }\n\n    // A mapping from the organization (Avatar) address to the saved data of the organization:\n    mapping(address=>mapping(bytes32=>Agreement)) public organizationsData;\n\n    // A mapping from hashes to parameters (use to store a particular configuration on the controller)\n    mapping(bytes32=>Parameters) public parameters;\n\n    // A mapping from index to Agreement\n    mapping(uint=>Agreement) public agreements;\n\n    uint agreementsCounter;\n\n    // Modifier, only the signers on an agreement:\n    modifier onlySigner(uint _agreementId) {\n        require(agreements[_agreementId].signers[msg.sender]);\n        _;\n    }\n\n    // Modifier, only the beneficiary on an agreement:\n    modifier onlyBeneficiary(uint _agreementId) {\n        require(agreements[_agreementId].beneficiary == msg.sender);\n        _;\n    }\n\n    /**\n     * @dev Constructor\n     */\n    function VestingScheme() public {}\n\n    /**\n    * @dev Proposing a vesting agreement in an organization.\n    * @param _beneficiary the beneficiary of the agreement.\n    * @param _returnOnCancelAddress where to send the tokens in case of stoping.\n    * @param _startingBlock the block from which the agreement starts.\n    * @param _amountPerPeriod amount of tokens per period.\n    * @param _periodLength period length in blocks.\n    * @param _numOfAgreedPeriods how many periods agreed on.\n    * @param _cliffInPeriods the length of the cliff in periods.\n    * @param _signaturesReqToCancel number of signatures required to cancel agreement.\n    * @param _signersArray avatar array of addresses that can sign to cancel agreement.\n    * @param _avatar avatar of the organization.\n    * @return bytes32 the proposalId\n    */\n    function proposeVestingAgreement(\n        address _beneficiary,\n        address _returnOnCancelAddress,\n        uint _startingBlock,\n        uint _amountPerPeriod,\n        uint _periodLength,\n        uint _numOfAgreedPeriods,\n        uint _cliffInPeriods,\n        uint _signaturesReqToCancel,\n        address[] _signersArray,\n        Avatar _avatar\n    )\n    external\n    returns(bytes32)\n    {\n        // Open voting:\n        Parameters memory params = parameters[getParametersFromController(_avatar)];\n        bytes32 proposalId = params.intVote.propose(2, params.voteParams, _avatar, ExecutableInterface(this),msg.sender);\n        assert(_signaturesReqToCancel >= _signersArray.length);\n        assert(_periodLength > 0);\n        // Write the signers mapping:\n        for (uint cnt = 0; cnt<_signersArray.length; cnt++) {\n            organizationsData[_avatar][proposalId].signers[_signersArray[cnt]] = true;\n        }\n        // Write parameters:\n        organizationsData[_avatar][proposalId].token = Avatar(_avatar).nativeToken();\n        organizationsData[_avatar][proposalId].beneficiary = _beneficiary;\n        organizationsData[_avatar][proposalId].returnOnCancelAddress = _returnOnCancelAddress;\n        organizationsData[_avatar][proposalId].startingBlock = _startingBlock;\n        organizationsData[_avatar][proposalId].amountPerPeriod = _amountPerPeriod;\n        organizationsData[_avatar][proposalId].periodLength = _periodLength;\n        organizationsData[_avatar][proposalId].numOfAgreedPeriods = _numOfAgreedPeriods;\n        organizationsData[_avatar][proposalId].cliffInPeriods = _cliffInPeriods;\n        organizationsData[_avatar][proposalId].signaturesReqToCancel = _signaturesReqToCancel;\n\n        params.intVote.ownerVote(proposalId, 1, msg.sender); // Automatically votes `yes` in the name of the opener.\n\n        // Log:\n        AgreementProposal(_avatar, proposalId);\n        return proposalId;\n    }\n\n    /**\n    * @dev Creating a vesting agreement.\n    * @param _token the relevant token in the agreement.\n    * @param _beneficiary the beneficiary of the agreement.\n    * @param _returnOnCancelAddress where to send the tokens in case of stoping.\n    * @param _startingBlock the block from which the agreement starts.\n    * @param _amountPerPeriod amount of tokens per period.\n    * @param _periodLength period length in blocks.\n    * @param _numOfAgreedPeriods how many periods agreed on.\n    * @param _cliffInPeriods the length of the cliff in periods.\n    * @param _signaturesReqToCancel number of signatures required to cancel agreement.\n    * @param _signersArray avatar array of addresses that can sign to cancel agreement.\n    * @return uint the agreement index.\n    */\n    function createVestedAgreement(\n        StandardToken _token,\n        address _beneficiary,\n        address _returnOnCancelAddress,\n        uint _startingBlock,\n        uint _amountPerPeriod,\n        uint _periodLength,\n        uint _numOfAgreedPeriods,\n        uint _cliffInPeriods,\n        uint _signaturesReqToCancel,\n        address[] _signersArray\n    )\n        external\n        returns(uint)\n    {\n        assert(_signaturesReqToCancel >= _signersArray.length);\n        assert(_periodLength > 0);\n        // Collect funds:\n        uint totalAmount = _amountPerPeriod.mul(_numOfAgreedPeriods);\n        _token.transferFrom(msg.sender, this, totalAmount);\n\n        // Write parameters:\n        agreements[agreementsCounter].token = _token;\n        agreements[agreementsCounter].beneficiary = _beneficiary;\n        agreements[agreementsCounter].returnOnCancelAddress = _returnOnCancelAddress;\n        agreements[agreementsCounter].startingBlock = _startingBlock;\n        agreements[agreementsCounter].amountPerPeriod = _amountPerPeriod;\n        agreements[agreementsCounter].periodLength = _periodLength;\n        agreements[agreementsCounter].numOfAgreedPeriods = _numOfAgreedPeriods;\n        agreements[agreementsCounter].cliffInPeriods = _cliffInPeriods;\n        agreements[agreementsCounter].signaturesReqToCancel = _signaturesReqToCancel;\n\n        // Write the signers mapping:\n        for (uint cnt = 0; cnt<_signersArray.length; cnt++) {\n            agreements[agreementsCounter].signers[_signersArray[cnt]] = true;\n        }\n\n        // Increment the agreements counter:\n        agreementsCounter++;\n\n        // Log new agreement and return id:\n        NewVestedAgreement(agreementsCounter-1);\n        return(agreementsCounter-1);\n    }\n\n    /**\n    * @dev Hash the parameters, save them if necessary, and return the hash value\n    * @param _voteParams -  voting parameters\n    * @param _intVote  - voting machine contract.\n    * @return bytes32 -the parameters hash\n    */\n    function setParameters(\n        bytes32 _voteParams,\n        IntVoteInterface _intVote\n    ) public returns(bytes32)\n    {\n        bytes32 paramsHash = getParametersHash(_voteParams, _intVote);\n        parameters[paramsHash].voteParams = _voteParams;\n        parameters[paramsHash].intVote = _intVote;\n        return paramsHash;\n    }\n\n    /**\n    * @dev Hash the parameters, and return the hash value\n    * @param _voteParams -  voting parameters\n    * @param _intVote  - voting machine contract.\n    * @return bytes32 -the parameters hash\n    */\n    function getParametersHash(\n        bytes32 _voteParams,\n        IntVoteInterface _intVote\n    ) public pure returns(bytes32)\n    {\n        return  (keccak256(_voteParams, _intVote));\n    }\n\n    /**\n    * @dev execution of proposals, can only be called by the voting machine in which the vote is held.\n    * @param _proposalId the ID of the voting in the voting machine\n    * @param _avatar address of the controller\n    * @param _param a parameter of the voting result, 0 is no and 1 is yes.\n    * @return bool which represents a successful of the function\n    */\n    function execute(bytes32 _proposalId, address _avatar, int _param) public returns(bool) {\n        // Check the caller is indeed the voting machine:\n        require(parameters[getParametersFromController(Avatar(_avatar))].intVote == msg.sender);\n\n        Execution(_avatar, _proposalId, _param);\n\n        Agreement memory proposedAgreement = organizationsData[_avatar][_proposalId];\n        delete organizationsData[_avatar][_proposalId];\n\n        // Check if vote was successful:\n        if (_param == 1) {\n        // Define controller and mint tokens, check minting actually took place:\n            ControllerInterface controller = ControllerInterface(Avatar(_avatar).owner());\n            uint tokensToMint = proposedAgreement.amountPerPeriod.mul(proposedAgreement.numOfAgreedPeriods);\n            controller.mintTokens(tokensToMint, this,_avatar);\n            agreements[agreementsCounter] = proposedAgreement;\n            agreementsCounter++;\n        // Log the new agreement:\n            NewVestedAgreement(agreementsCounter-1);\n       }\n        return true;\n    }\n\n    /**\n    * @dev Function to sign to cancel an agreement.\n    * @param _agreementId the relevant agreement.\n    */\n    function signToCancelAgreement(uint _agreementId) public onlySigner(_agreementId) {\n        Agreement storage agreement = agreements[_agreementId];\n\n        // Check attempt to double sign:\n        require(! agreement.signaturesReceived[msg.sender]);\n\n        // Sign:\n        agreement.signaturesReceived[msg.sender] = true;\n        agreement.signaturesReceivedCounter++;\n\n        SignToCancelAgreement(_agreementId,msg.sender);\n\n        // Check if threshold crossed:\n        if (agreement.signaturesReceivedCounter == agreement.signaturesReqToCancel) {\n            cancelAgreement(_agreementId);\n        }\n    }\n\n    /**\n    * @dev Function to revoke vote for canceling agreement.\n    * @param _agreementId the relevant agreement.\n    */\n    function revokeSignToCancelAgreement(uint _agreementId) public onlySigner(_agreementId) {\n        Agreement storage agreement = agreements[_agreementId];\n\n        // Check signer did sign:\n        require(agreement.signaturesReceived[msg.sender]);\n\n        // Revoke signature:\n        agreement.signaturesReceived[msg.sender] = false;\n        agreement.signaturesReceivedCounter--;\n\n        RevokeSignToCancelAgreement(_agreementId,msg.sender);\n    }\n\n    /**\n    * @dev Function for a beneficiary to collect.\n    * @param _agreementId the relevant agreement.\n    */\n    function collect(uint _agreementId) public onlyBeneficiary(_agreementId) {\n        Agreement memory agreement = agreements[_agreementId];\n        uint periodsFromStartingBlock = (block.number.sub(agreement.startingBlock)).div(agreement.periodLength);\n        assert(periodsFromStartingBlock >= agreement.cliffInPeriods);\n\n        // Compute periods to pay:\n        uint periodsToPay;\n        if (periodsFromStartingBlock >= agreement.numOfAgreedPeriods) {\n            periodsToPay = agreement.numOfAgreedPeriods.sub(agreement.collectedPeriods);\n        } else {\n            periodsToPay = periodsFromStartingBlock.sub(agreement.collectedPeriods);\n        }\n        // Update periods paid:\n        agreements[_agreementId].collectedPeriods = agreements[_agreementId].collectedPeriods.add(periodsToPay);\n\n        // Transfer:\n        uint tokensToTransfer = periodsToPay.mul(agreement.amountPerPeriod);\n        agreement.token.transfer(agreement.beneficiary, tokensToTransfer);\n\n        // Log collecting:\n        Collect(_agreementId);\n    }\n\n    /**\n    * @dev Internal function, to cancel an agreement.\n    * @param _agreementId the relevant agreement.\n    */\n    function cancelAgreement(uint _agreementId) internal {\n        Agreement memory agreement = agreements[_agreementId];\n        delete  agreements[_agreementId];\n        uint periodsLeft = agreement.numOfAgreedPeriods.sub(agreement.collectedPeriods);\n        uint tokensLeft = periodsLeft.mul(agreement.amountPerPeriod);\n        agreement.token.transfer(agreement.returnOnCancelAddress, tokensLeft);\n        // Log canceling agreement:\n        AgreementCancel(_agreementId);\n    }\n}\n",
  "sourcePath": "/Users/oren/daostack/daostack2/daostack/contracts/universalSchemes/VestingScheme.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/universalSchemes/VestingScheme.sol",
      "exportedSymbols": {
        "VestingScheme": [
          10888
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 10009,
        "name": "PragmaDirective",
        "src": "0:24:30"
      },
      {
        "attributes": {
          "SourceUnit": 3460,
          "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/VotingMachines/IntVoteInterface.sol",
          "file": "../VotingMachines/IntVoteInterface.sol",
          "scope": 10889,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 10010,
        "name": "ImportDirective",
        "src": "26:48:30"
      },
      {
        "attributes": {
          "SourceUnit": 9586,
          "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/universalSchemes/UniversalScheme.sol",
          "file": "./UniversalScheme.sol",
          "scope": 10889,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 10011,
        "name": "ImportDirective",
        "src": "75:31:30"
      },
      {
        "attributes": {
          "contractDependencies": [
            8021,
            9585,
            9604,
            11445
          ],
          "contractKind": "contract",
          "documentation": "@title A scheme for vesting.\n@dev Can be used without organization just as a vesting component.",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            10888,
            8021,
            9585,
            9604,
            11445
          ],
          "name": "VestingScheme",
          "scope": 10889
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "UniversalScheme",
                  "referencedDeclaration": 9585,
                  "type": "contract UniversalScheme"
                },
                "id": 10012,
                "name": "UserDefinedTypeName",
                "src": "246:15:30"
              }
            ],
            "id": 10013,
            "name": "InheritanceSpecifier",
            "src": "246:15:30"
          },
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "ExecutableInterface",
                  "referencedDeclaration": 8021,
                  "type": "contract ExecutableInterface"
                },
                "id": 10014,
                "name": "UserDefinedTypeName",
                "src": "263:19:30"
              }
            ],
            "id": 10015,
            "name": "InheritanceSpecifier",
            "src": "263:19:30"
          },
          {
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "SafeMath",
                  "referencedDeclaration": 11365,
                  "type": "library SafeMath"
                },
                "id": 10016,
                "name": "UserDefinedTypeName",
                "src": "295:8:30"
              },
              {
                "attributes": {
                  "name": "uint",
                  "type": "uint256"
                },
                "id": 10017,
                "name": "ElementaryTypeName",
                "src": "308:4:30"
              }
            ],
            "id": 10018,
            "name": "UsingForDirective",
            "src": "289:24:30"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ProposalExecuted"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 10022,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10019,
                        "name": "ElementaryTypeName",
                        "src": "342:7:30"
                      }
                    ],
                    "id": 10020,
                    "name": "VariableDeclaration",
                    "src": "342:23:30"
                  }
                ],
                "id": 10021,
                "name": "ParameterList",
                "src": "341:25:30"
              }
            ],
            "id": 10022,
            "name": "EventDefinition",
            "src": "319:48:30"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "AgreementProposal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 10028,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10023,
                        "name": "ElementaryTypeName",
                        "src": "396:7:30"
                      }
                    ],
                    "id": 10024,
                    "name": "VariableDeclaration",
                    "src": "396:23:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_proposalId",
                      "scope": 10028,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10025,
                        "name": "ElementaryTypeName",
                        "src": "421:7:30"
                      }
                    ],
                    "id": 10026,
                    "name": "VariableDeclaration",
                    "src": "421:19:30"
                  }
                ],
                "id": 10027,
                "name": "ParameterList",
                "src": "395:46:30"
              }
            ],
            "id": 10028,
            "name": "EventDefinition",
            "src": "372:70:30"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "Execution"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 10036,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10029,
                        "name": "ElementaryTypeName",
                        "src": "463:7:30"
                      }
                    ],
                    "id": 10030,
                    "name": "VariableDeclaration",
                    "src": "463:23:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_proposalId",
                      "scope": 10036,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10031,
                        "name": "ElementaryTypeName",
                        "src": "488:7:30"
                      }
                    ],
                    "id": 10032,
                    "name": "VariableDeclaration",
                    "src": "488:19:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_result",
                      "scope": 10036,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int",
                          "type": "int256"
                        },
                        "id": 10033,
                        "name": "ElementaryTypeName",
                        "src": "509:3:30"
                      }
                    ],
                    "id": 10034,
                    "name": "VariableDeclaration",
                    "src": "509:11:30"
                  }
                ],
                "id": 10035,
                "name": "ParameterList",
                "src": "462:59:30"
              }
            ],
            "id": 10036,
            "name": "EventDefinition",
            "src": "447:75:30"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "NewVestedAgreement"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_agreementId",
                      "scope": 10040,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10037,
                        "name": "ElementaryTypeName",
                        "src": "552:4:30"
                      }
                    ],
                    "id": 10038,
                    "name": "VariableDeclaration",
                    "src": "552:25:30"
                  }
                ],
                "id": 10039,
                "name": "ParameterList",
                "src": "551:27:30"
              }
            ],
            "id": 10040,
            "name": "EventDefinition",
            "src": "527:52:30"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "SignToCancelAgreement"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_agreementId",
                      "scope": 10046,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10041,
                        "name": "ElementaryTypeName",
                        "src": "612:4:30"
                      }
                    ],
                    "id": 10042,
                    "name": "VariableDeclaration",
                    "src": "612:25:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_signer",
                      "scope": 10046,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10043,
                        "name": "ElementaryTypeName",
                        "src": "639:7:30"
                      }
                    ],
                    "id": 10044,
                    "name": "VariableDeclaration",
                    "src": "639:23:30"
                  }
                ],
                "id": 10045,
                "name": "ParameterList",
                "src": "611:52:30"
              }
            ],
            "id": 10046,
            "name": "EventDefinition",
            "src": "584:80:30"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "RevokeSignToCancelAgreement"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_agreementId",
                      "scope": 10052,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10047,
                        "name": "ElementaryTypeName",
                        "src": "703:4:30"
                      }
                    ],
                    "id": 10048,
                    "name": "VariableDeclaration",
                    "src": "703:25:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_signer",
                      "scope": 10052,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10049,
                        "name": "ElementaryTypeName",
                        "src": "730:7:30"
                      }
                    ],
                    "id": 10050,
                    "name": "VariableDeclaration",
                    "src": "730:23:30"
                  }
                ],
                "id": 10051,
                "name": "ParameterList",
                "src": "702:52:30"
              }
            ],
            "id": 10052,
            "name": "EventDefinition",
            "src": "669:86:30"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "AgreementCancel"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_agreementId",
                      "scope": 10056,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10053,
                        "name": "ElementaryTypeName",
                        "src": "782:4:30"
                      }
                    ],
                    "id": 10054,
                    "name": "VariableDeclaration",
                    "src": "782:25:30"
                  }
                ],
                "id": 10055,
                "name": "ParameterList",
                "src": "781:27:30"
              }
            ],
            "id": 10056,
            "name": "EventDefinition",
            "src": "760:49:30"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "Collect"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_agreementId",
                      "scope": 10060,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10057,
                        "name": "ElementaryTypeName",
                        "src": "828:4:30"
                      }
                    ],
                    "id": 10058,
                    "name": "VariableDeclaration",
                    "src": "828:25:30"
                  }
                ],
                "id": 10059,
                "name": "ParameterList",
                "src": "827:27:30"
              }
            ],
            "id": 10060,
            "name": "EventDefinition",
            "src": "814:41:30"
          },
          {
            "attributes": {
              "canonicalName": "VestingScheme.Agreement",
              "name": "Agreement",
              "scope": 10888,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "token",
                  "scope": 10091,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract StandardToken",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "StandardToken",
                      "referencedDeclaration": 11999,
                      "type": "contract StandardToken"
                    },
                    "id": 10061,
                    "name": "UserDefinedTypeName",
                    "src": "932:13:30"
                  }
                ],
                "id": 10062,
                "name": "VariableDeclaration",
                "src": "932:19:30"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "beneficiary",
                  "scope": 10091,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 10063,
                    "name": "ElementaryTypeName",
                    "src": "961:7:30"
                  }
                ],
                "id": 10064,
                "name": "VariableDeclaration",
                "src": "961:19:30"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "returnOnCancelAddress",
                  "scope": 10091,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 10065,
                    "name": "ElementaryTypeName",
                    "src": "990:7:30"
                  }
                ],
                "id": 10066,
                "name": "VariableDeclaration",
                "src": "990:29:30"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "startingBlock",
                  "scope": 10091,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 10067,
                    "name": "ElementaryTypeName",
                    "src": "1029:4:30"
                  }
                ],
                "id": 10068,
                "name": "VariableDeclaration",
                "src": "1029:18:30"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "amountPerPeriod",
                  "scope": 10091,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 10069,
                    "name": "ElementaryTypeName",
                    "src": "1057:4:30"
                  }
                ],
                "id": 10070,
                "name": "VariableDeclaration",
                "src": "1057:20:30"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "periodLength",
                  "scope": 10091,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 10071,
                    "name": "ElementaryTypeName",
                    "src": "1087:4:30"
                  }
                ],
                "id": 10072,
                "name": "VariableDeclaration",
                "src": "1087:17:30"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "numOfAgreedPeriods",
                  "scope": 10091,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 10073,
                    "name": "ElementaryTypeName",
                    "src": "1114:4:30"
                  }
                ],
                "id": 10074,
                "name": "VariableDeclaration",
                "src": "1114:23:30"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "cliffInPeriods",
                  "scope": 10091,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 10075,
                    "name": "ElementaryTypeName",
                    "src": "1147:4:30"
                  }
                ],
                "id": 10076,
                "name": "VariableDeclaration",
                "src": "1147:19:30"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "signaturesReqToCancel",
                  "scope": 10091,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 10077,
                    "name": "ElementaryTypeName",
                    "src": "1176:4:30"
                  }
                ],
                "id": 10078,
                "name": "VariableDeclaration",
                "src": "1176:26:30"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "collectedPeriods",
                  "scope": 10091,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 10079,
                    "name": "ElementaryTypeName",
                    "src": "1212:4:30"
                  }
                ],
                "id": 10080,
                "name": "VariableDeclaration",
                "src": "1212:21:30"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "signaturesReceivedCounter",
                  "scope": 10091,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 10081,
                    "name": "ElementaryTypeName",
                    "src": "1243:4:30"
                  }
                ],
                "id": 10082,
                "name": "VariableDeclaration",
                "src": "1243:30:30"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "signers",
                  "scope": 10091,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "mapping(address => bool)",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "mapping(address => bool)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10083,
                        "name": "ElementaryTypeName",
                        "src": "1291:7:30"
                      },
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 10084,
                        "name": "ElementaryTypeName",
                        "src": "1300:4:30"
                      }
                    ],
                    "id": 10085,
                    "name": "Mapping",
                    "src": "1283:22:30"
                  }
                ],
                "id": 10086,
                "name": "VariableDeclaration",
                "src": "1283:30:30"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "signaturesReceived",
                  "scope": 10091,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "mapping(address => bool)",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "mapping(address => bool)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10087,
                        "name": "ElementaryTypeName",
                        "src": "1331:7:30"
                      },
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 10088,
                        "name": "ElementaryTypeName",
                        "src": "1340:4:30"
                      }
                    ],
                    "id": 10089,
                    "name": "Mapping",
                    "src": "1323:22:30"
                  }
                ],
                "id": 10090,
                "name": "VariableDeclaration",
                "src": "1323:41:30"
              }
            ],
            "id": 10091,
            "name": "StructDefinition",
            "src": "905:466:30"
          },
          {
            "attributes": {
              "canonicalName": "VestingScheme.Parameters",
              "name": "Parameters",
              "scope": 10888,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "voteParams",
                  "scope": 10096,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 10092,
                    "name": "ElementaryTypeName",
                    "src": "1406:7:30"
                  }
                ],
                "id": 10093,
                "name": "VariableDeclaration",
                "src": "1406:18:30"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "intVote",
                  "scope": 10096,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract IntVoteInterface",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "IntVoteInterface",
                      "referencedDeclaration": 3459,
                      "type": "contract IntVoteInterface"
                    },
                    "id": 10094,
                    "name": "UserDefinedTypeName",
                    "src": "1434:16:30"
                  }
                ],
                "id": 10095,
                "name": "VariableDeclaration",
                "src": "1434:24:30"
              }
            ],
            "id": 10096,
            "name": "StructDefinition",
            "src": "1378:87:30"
          },
          {
            "attributes": {
              "constant": false,
              "name": "organizationsData",
              "scope": 10888,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 10097,
                    "name": "ElementaryTypeName",
                    "src": "1574:7:30"
                  },
                  {
                    "attributes": {
                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10098,
                        "name": "ElementaryTypeName",
                        "src": "1591:7:30"
                      },
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Agreement",
                          "referencedDeclaration": 10091,
                          "type": "struct VestingScheme.Agreement storage pointer"
                        },
                        "id": 10099,
                        "name": "UserDefinedTypeName",
                        "src": "1600:9:30"
                      }
                    ],
                    "id": 10100,
                    "name": "Mapping",
                    "src": "1583:27:30"
                  }
                ],
                "id": 10101,
                "name": "Mapping",
                "src": "1566:45:30"
              }
            ],
            "id": 10102,
            "name": "VariableDeclaration",
            "src": "1566:70:30"
          },
          {
            "attributes": {
              "constant": false,
              "name": "parameters",
              "scope": 10888,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(bytes32 => struct VestingScheme.Parameters storage ref)",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(bytes32 => struct VestingScheme.Parameters storage ref)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 10103,
                    "name": "ElementaryTypeName",
                    "src": "1754:7:30"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Parameters",
                      "referencedDeclaration": 10096,
                      "type": "struct VestingScheme.Parameters storage pointer"
                    },
                    "id": 10104,
                    "name": "UserDefinedTypeName",
                    "src": "1763:10:30"
                  }
                ],
                "id": 10105,
                "name": "Mapping",
                "src": "1746:28:30"
              }
            ],
            "id": 10106,
            "name": "VariableDeclaration",
            "src": "1746:46:30"
          },
          {
            "attributes": {
              "constant": false,
              "name": "agreements",
              "scope": 10888,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 10107,
                    "name": "ElementaryTypeName",
                    "src": "1848:4:30"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Agreement",
                      "referencedDeclaration": 10091,
                      "type": "struct VestingScheme.Agreement storage pointer"
                    },
                    "id": 10108,
                    "name": "UserDefinedTypeName",
                    "src": "1854:9:30"
                  }
                ],
                "id": 10109,
                "name": "Mapping",
                "src": "1840:24:30"
              }
            ],
            "id": 10110,
            "name": "VariableDeclaration",
            "src": "1840:42:30"
          },
          {
            "attributes": {
              "constant": false,
              "name": "agreementsCounter",
              "scope": 10888,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint",
                  "type": "uint256"
                },
                "id": 10111,
                "name": "ElementaryTypeName",
                "src": "1889:4:30"
              }
            ],
            "id": 10112,
            "name": "VariableDeclaration",
            "src": "1889:22:30"
          },
          {
            "attributes": {
              "name": "onlySigner",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_agreementId",
                      "scope": 10128,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10113,
                        "name": "ElementaryTypeName",
                        "src": "1989:4:30"
                      }
                    ],
                    "id": 10114,
                    "name": "VariableDeclaration",
                    "src": "1989:17:30"
                  }
                ],
                "id": 10115,
                "name": "ParameterList",
                "src": "1988:19:30"
              },
              {
                "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": 10116,
                            "name": "Identifier",
                            "src": "2018:7:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "signers",
                                  "referencedDeclaration": 10086,
                                  "type": "mapping(address => bool)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct VestingScheme.Agreement storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10110,
                                          "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                          "value": "agreements"
                                        },
                                        "id": 10117,
                                        "name": "Identifier",
                                        "src": "2026:10:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10114,
                                          "type": "uint256",
                                          "value": "_agreementId"
                                        },
                                        "id": 10118,
                                        "name": "Identifier",
                                        "src": "2037:12:30"
                                      }
                                    ],
                                    "id": 10119,
                                    "name": "IndexAccess",
                                    "src": "2026:24:30"
                                  }
                                ],
                                "id": 10120,
                                "name": "MemberAccess",
                                "src": "2026:32:30"
                              },
                              {
                                "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": 10121,
                                    "name": "Identifier",
                                    "src": "2059:3:30"
                                  }
                                ],
                                "id": 10122,
                                "name": "MemberAccess",
                                "src": "2059:10:30"
                              }
                            ],
                            "id": 10123,
                            "name": "IndexAccess",
                            "src": "2026:44:30"
                          }
                        ],
                        "id": 10124,
                        "name": "FunctionCall",
                        "src": "2018:53:30"
                      }
                    ],
                    "id": 10125,
                    "name": "ExpressionStatement",
                    "src": "2018:53:30"
                  },
                  {
                    "id": 10126,
                    "name": "PlaceholderStatement",
                    "src": "2081:1:30"
                  }
                ],
                "id": 10127,
                "name": "Block",
                "src": "2008:81:30"
              }
            ],
            "id": 10128,
            "name": "ModifierDefinition",
            "src": "1969:120:30"
          },
          {
            "attributes": {
              "name": "onlyBeneficiary",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_agreementId",
                      "scope": 10144,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10129,
                        "name": "ElementaryTypeName",
                        "src": "2175:4:30"
                      }
                    ],
                    "id": 10130,
                    "name": "VariableDeclaration",
                    "src": "2175:17:30"
                  }
                ],
                "id": 10131,
                "name": "ParameterList",
                "src": "2174:19:30"
              },
              {
                "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": 10132,
                            "name": "Identifier",
                            "src": "2204:7:30"
                          },
                          {
                            "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,
                                  "member_name": "beneficiary",
                                  "referencedDeclaration": 10064,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct VestingScheme.Agreement storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10110,
                                          "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                          "value": "agreements"
                                        },
                                        "id": 10133,
                                        "name": "Identifier",
                                        "src": "2212:10:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10130,
                                          "type": "uint256",
                                          "value": "_agreementId"
                                        },
                                        "id": 10134,
                                        "name": "Identifier",
                                        "src": "2223:12:30"
                                      }
                                    ],
                                    "id": 10135,
                                    "name": "IndexAccess",
                                    "src": "2212:24:30"
                                  }
                                ],
                                "id": 10136,
                                "name": "MemberAccess",
                                "src": "2212:36:30"
                              },
                              {
                                "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": 10137,
                                    "name": "Identifier",
                                    "src": "2252:3:30"
                                  }
                                ],
                                "id": 10138,
                                "name": "MemberAccess",
                                "src": "2252:10:30"
                              }
                            ],
                            "id": 10139,
                            "name": "BinaryOperation",
                            "src": "2212:50:30"
                          }
                        ],
                        "id": 10140,
                        "name": "FunctionCall",
                        "src": "2204:59:30"
                      }
                    ],
                    "id": 10141,
                    "name": "ExpressionStatement",
                    "src": "2204:59:30"
                  },
                  {
                    "id": 10142,
                    "name": "PlaceholderStatement",
                    "src": "2273:1:30"
                  }
                ],
                "id": 10143,
                "name": "Block",
                "src": "2194:87:30"
              }
            ],
            "id": 10144,
            "name": "ModifierDefinition",
            "src": "2150:131:30"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "VestingScheme",
              "payable": false,
              "scope": 10888,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 10145,
                "name": "ParameterList",
                "src": "2349:2:30"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 10146,
                "name": "ParameterList",
                "src": "2359:0:30"
              },
              {
                "attributes": {
                  "statements": [
                    null
                  ]
                },
                "children": [],
                "id": 10147,
                "name": "Block",
                "src": "2359:2:30"
              }
            ],
            "id": 10148,
            "name": "FunctionDefinition",
            "src": "2327:34:30"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "proposeVestingAgreement",
              "payable": false,
              "scope": 10888,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_beneficiary",
                      "scope": 10341,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10149,
                        "name": "ElementaryTypeName",
                        "src": "3195:7:30"
                      }
                    ],
                    "id": 10150,
                    "name": "VariableDeclaration",
                    "src": "3195:20:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_returnOnCancelAddress",
                      "scope": 10341,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10151,
                        "name": "ElementaryTypeName",
                        "src": "3225:7:30"
                      }
                    ],
                    "id": 10152,
                    "name": "VariableDeclaration",
                    "src": "3225:30:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_startingBlock",
                      "scope": 10341,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10153,
                        "name": "ElementaryTypeName",
                        "src": "3265:4:30"
                      }
                    ],
                    "id": 10154,
                    "name": "VariableDeclaration",
                    "src": "3265:19:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amountPerPeriod",
                      "scope": 10341,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10155,
                        "name": "ElementaryTypeName",
                        "src": "3294:4:30"
                      }
                    ],
                    "id": 10156,
                    "name": "VariableDeclaration",
                    "src": "3294:21:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_periodLength",
                      "scope": 10341,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10157,
                        "name": "ElementaryTypeName",
                        "src": "3325:4:30"
                      }
                    ],
                    "id": 10158,
                    "name": "VariableDeclaration",
                    "src": "3325:18:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_numOfAgreedPeriods",
                      "scope": 10341,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10159,
                        "name": "ElementaryTypeName",
                        "src": "3353:4:30"
                      }
                    ],
                    "id": 10160,
                    "name": "VariableDeclaration",
                    "src": "3353:24:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_cliffInPeriods",
                      "scope": 10341,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10161,
                        "name": "ElementaryTypeName",
                        "src": "3387:4:30"
                      }
                    ],
                    "id": 10162,
                    "name": "VariableDeclaration",
                    "src": "3387:20:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_signaturesReqToCancel",
                      "scope": 10341,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10163,
                        "name": "ElementaryTypeName",
                        "src": "3417:4:30"
                      }
                    ],
                    "id": 10164,
                    "name": "VariableDeclaration",
                    "src": "3417:27:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_signersArray",
                      "scope": 10341,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address[] calldata",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "address[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "type": "address"
                            },
                            "id": 10165,
                            "name": "ElementaryTypeName",
                            "src": "3454:7:30"
                          }
                        ],
                        "id": 10166,
                        "name": "ArrayTypeName",
                        "src": "3454:9:30"
                      }
                    ],
                    "id": 10167,
                    "name": "VariableDeclaration",
                    "src": "3454:23:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 10341,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Avatar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Avatar",
                          "referencedDeclaration": 3873,
                          "type": "contract Avatar"
                        },
                        "id": 10168,
                        "name": "UserDefinedTypeName",
                        "src": "3487:6:30"
                      }
                    ],
                    "id": 10169,
                    "name": "VariableDeclaration",
                    "src": "3487:14:30"
                  }
                ],
                "id": 10170,
                "name": "ParameterList",
                "src": "3185:322:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 10341,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10171,
                        "name": "ElementaryTypeName",
                        "src": "3533:7:30"
                      }
                    ],
                    "id": 10172,
                    "name": "VariableDeclaration",
                    "src": "3533:7:30"
                  }
                ],
                "id": 10173,
                "name": "ParameterList",
                "src": "3532:9:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        10175
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "params",
                          "scope": 10341,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct VestingScheme.Parameters memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Parameters",
                              "referencedDeclaration": 10096,
                              "type": "struct VestingScheme.Parameters storage pointer"
                            },
                            "id": 10174,
                            "name": "UserDefinedTypeName",
                            "src": "3580:10:30"
                          }
                        ],
                        "id": 10175,
                        "name": "VariableDeclaration",
                        "src": "3580:24:30"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct VestingScheme.Parameters storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10106,
                              "type": "mapping(bytes32 => struct VestingScheme.Parameters storage ref)",
                              "value": "parameters"
                            },
                            "id": 10176,
                            "name": "Identifier",
                            "src": "3607:10:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_Avatar_$3873",
                                      "typeString": "contract Avatar"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    9584
                                  ],
                                  "referencedDeclaration": 9584,
                                  "type": "function (contract Avatar) view returns (bytes32)",
                                  "value": "getParametersFromController"
                                },
                                "id": 10177,
                                "name": "Identifier",
                                "src": "3618:27:30"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10169,
                                  "type": "contract Avatar",
                                  "value": "_avatar"
                                },
                                "id": 10178,
                                "name": "Identifier",
                                "src": "3646:7:30"
                              }
                            ],
                            "id": 10179,
                            "name": "FunctionCall",
                            "src": "3618:36:30"
                          }
                        ],
                        "id": 10180,
                        "name": "IndexAccess",
                        "src": "3607:48:30"
                      }
                    ],
                    "id": 10181,
                    "name": "VariableDeclarationStatement",
                    "src": "3580:75:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        10183
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "proposalId",
                          "scope": 10341,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 10182,
                            "name": "ElementaryTypeName",
                            "src": "3665:7:30"
                          }
                        ],
                        "id": 10183,
                        "name": "VariableDeclaration",
                        "src": "3665:18:30"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bytes32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Avatar_$3873",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_contract$_ExecutableInterface_$8021",
                                  "typeString": "contract ExecutableInterface"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "propose",
                              "referencedDeclaration": 3371,
                              "type": "function (uint256,bytes32,address,contract ExecutableInterface,address) external returns (bytes32)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "intVote",
                                  "referencedDeclaration": 10095,
                                  "type": "contract IntVoteInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10175,
                                      "type": "struct VestingScheme.Parameters memory",
                                      "value": "params"
                                    },
                                    "id": 10184,
                                    "name": "Identifier",
                                    "src": "3686:6:30"
                                  }
                                ],
                                "id": 10185,
                                "name": "MemberAccess",
                                "src": "3686:14:30"
                              }
                            ],
                            "id": 10186,
                            "name": "MemberAccess",
                            "src": "3686:22:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "32",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 2",
                              "value": "2"
                            },
                            "id": 10187,
                            "name": "Literal",
                            "src": "3709:1:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "voteParams",
                              "referencedDeclaration": 10093,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10175,
                                  "type": "struct VestingScheme.Parameters memory",
                                  "value": "params"
                                },
                                "id": 10188,
                                "name": "Identifier",
                                "src": "3712:6:30"
                              }
                            ],
                            "id": 10189,
                            "name": "MemberAccess",
                            "src": "3712:17:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10169,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 10190,
                            "name": "Identifier",
                            "src": "3731:7:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract ExecutableInterface",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_VestingScheme_$10888",
                                      "typeString": "contract VestingScheme"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8021,
                                  "type": "type(contract ExecutableInterface)",
                                  "value": "ExecutableInterface"
                                },
                                "id": 10191,
                                "name": "Identifier",
                                "src": "3740:19:30"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12106,
                                  "type": "contract VestingScheme",
                                  "value": "this"
                                },
                                "id": 10192,
                                "name": "Identifier",
                                "src": "3760:4:30"
                              }
                            ],
                            "id": 10193,
                            "name": "FunctionCall",
                            "src": "3740:25:30"
                          },
                          {
                            "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": 10194,
                                "name": "Identifier",
                                "src": "3766:3:30"
                              }
                            ],
                            "id": 10195,
                            "name": "MemberAccess",
                            "src": "3766:10:30"
                          }
                        ],
                        "id": 10196,
                        "name": "FunctionCall",
                        "src": "3686:91:30"
                      }
                    ],
                    "id": 10197,
                    "name": "VariableDeclarationStatement",
                    "src": "3665:112:30"
                  },
                  {
                    "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": 12002,
                              "type": "function (bool) pure",
                              "value": "assert"
                            },
                            "id": 10198,
                            "name": "Identifier",
                            "src": "3787:6:30"
                          },
                          {
                            "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": 10164,
                                  "type": "uint256",
                                  "value": "_signaturesReqToCancel"
                                },
                                "id": 10199,
                                "name": "Identifier",
                                "src": "3794:22:30"
                              },
                              {
                                "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": 10167,
                                      "type": "address[] calldata",
                                      "value": "_signersArray"
                                    },
                                    "id": 10200,
                                    "name": "Identifier",
                                    "src": "3820:13:30"
                                  }
                                ],
                                "id": 10201,
                                "name": "MemberAccess",
                                "src": "3820:20:30"
                              }
                            ],
                            "id": 10202,
                            "name": "BinaryOperation",
                            "src": "3794:46:30"
                          }
                        ],
                        "id": 10203,
                        "name": "FunctionCall",
                        "src": "3787:54:30"
                      }
                    ],
                    "id": 10204,
                    "name": "ExpressionStatement",
                    "src": "3787:54:30"
                  },
                  {
                    "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": 12002,
                              "type": "function (bool) pure",
                              "value": "assert"
                            },
                            "id": 10205,
                            "name": "Identifier",
                            "src": "3851:6:30"
                          },
                          {
                            "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": 10158,
                                  "type": "uint256",
                                  "value": "_periodLength"
                                },
                                "id": 10206,
                                "name": "Identifier",
                                "src": "3858:13:30"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 10207,
                                "name": "Literal",
                                "src": "3874:1:30"
                              }
                            ],
                            "id": 10208,
                            "name": "BinaryOperation",
                            "src": "3858:17:30"
                          }
                        ],
                        "id": 10209,
                        "name": "FunctionCall",
                        "src": "3851:25:30"
                      }
                    ],
                    "id": 10210,
                    "name": "ExpressionStatement",
                    "src": "3851:25:30"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            10212
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "name": "cnt",
                              "scope": 10341,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint",
                                  "type": "uint256"
                                },
                                "id": 10211,
                                "name": "ElementaryTypeName",
                                "src": "3929:4:30"
                              }
                            ],
                            "id": 10212,
                            "name": "VariableDeclaration",
                            "src": "3929:8:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 10213,
                            "name": "Literal",
                            "src": "3940:1:30"
                          }
                        ],
                        "id": 10214,
                        "name": "VariableDeclarationStatement",
                        "src": "3929:12:30"
                      },
                      {
                        "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": 10212,
                              "type": "uint256",
                              "value": "cnt"
                            },
                            "id": 10215,
                            "name": "Identifier",
                            "src": "3943:3:30"
                          },
                          {
                            "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": 10167,
                                  "type": "address[] calldata",
                                  "value": "_signersArray"
                                },
                                "id": 10216,
                                "name": "Identifier",
                                "src": "3947:13:30"
                              }
                            ],
                            "id": 10217,
                            "name": "MemberAccess",
                            "src": "3947:20:30"
                          }
                        ],
                        "id": 10218,
                        "name": "BinaryOperation",
                        "src": "3943:24:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10212,
                                  "type": "uint256",
                                  "value": "cnt"
                                },
                                "id": 10219,
                                "name": "Identifier",
                                "src": "3969:3:30"
                              }
                            ],
                            "id": 10220,
                            "name": "UnaryOperation",
                            "src": "3969:5:30"
                          }
                        ],
                        "id": 10221,
                        "name": "ExpressionStatement",
                        "src": "3969:5:30"
                      },
                      {
                        "children": [
                          {
                            "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,
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "signers",
                                          "referencedDeclaration": 10086,
                                          "type": "mapping(address => bool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct VestingScheme.Agreement storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10102,
                                                      "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                                      "value": "organizationsData"
                                                    },
                                                    "id": 10222,
                                                    "name": "Identifier",
                                                    "src": "3990:17:30"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10169,
                                                      "type": "contract Avatar",
                                                      "value": "_avatar"
                                                    },
                                                    "id": 10223,
                                                    "name": "Identifier",
                                                    "src": "4008:7:30"
                                                  }
                                                ],
                                                "id": 10225,
                                                "name": "IndexAccess",
                                                "src": "3990:26:30"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10183,
                                                  "type": "bytes32",
                                                  "value": "proposalId"
                                                },
                                                "id": 10224,
                                                "name": "Identifier",
                                                "src": "4017:10:30"
                                              }
                                            ],
                                            "id": 10226,
                                            "name": "IndexAccess",
                                            "src": "3990:38:30"
                                          }
                                        ],
                                        "id": 10227,
                                        "name": "MemberAccess",
                                        "src": "3990:46:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "address"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10167,
                                              "type": "address[] calldata",
                                              "value": "_signersArray"
                                            },
                                            "id": 10228,
                                            "name": "Identifier",
                                            "src": "4037:13:30"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10212,
                                              "type": "uint256",
                                              "value": "cnt"
                                            },
                                            "id": 10229,
                                            "name": "Identifier",
                                            "src": "4051:3:30"
                                          }
                                        ],
                                        "id": 10230,
                                        "name": "IndexAccess",
                                        "src": "4037:18:30"
                                      }
                                    ],
                                    "id": 10231,
                                    "name": "IndexAccess",
                                    "src": "3990:66:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "74727565",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "bool",
                                      "type": "bool",
                                      "value": "true"
                                    },
                                    "id": 10232,
                                    "name": "Literal",
                                    "src": "4059:4:30"
                                  }
                                ],
                                "id": 10233,
                                "name": "Assignment",
                                "src": "3990:73:30"
                              }
                            ],
                            "id": 10234,
                            "name": "ExpressionStatement",
                            "src": "3990:73:30"
                          }
                        ],
                        "id": 10235,
                        "name": "Block",
                        "src": "3976:98:30"
                      }
                    ],
                    "id": 10236,
                    "name": "ForStatement",
                    "src": "3924:150:30"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract StandardToken"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "token",
                              "referencedDeclaration": 10062,
                              "type": "contract StandardToken"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10102,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 10237,
                                        "name": "Identifier",
                                        "src": "4112:17:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10169,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 10238,
                                        "name": "Identifier",
                                        "src": "4130:7:30"
                                      }
                                    ],
                                    "id": 10240,
                                    "name": "IndexAccess",
                                    "src": "4112:26:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10183,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 10239,
                                    "name": "Identifier",
                                    "src": "4139:10:30"
                                  }
                                ],
                                "id": 10241,
                                "name": "IndexAccess",
                                "src": "4112:38:30"
                              }
                            ],
                            "id": 10242,
                            "name": "MemberAccess",
                            "src": "4112:44:30"
                          },
                          {
                            "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,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_Avatar_$3873",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3873,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 10243,
                                        "name": "Identifier",
                                        "src": "4159:6:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10169,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 10244,
                                        "name": "Identifier",
                                        "src": "4166:7:30"
                                      }
                                    ],
                                    "id": 10245,
                                    "name": "FunctionCall",
                                    "src": "4159:15:30"
                                  }
                                ],
                                "id": 10246,
                                "name": "MemberAccess",
                                "src": "4159:27:30"
                              }
                            ],
                            "id": 10247,
                            "name": "FunctionCall",
                            "src": "4159:29:30"
                          }
                        ],
                        "id": 10248,
                        "name": "Assignment",
                        "src": "4112:76:30"
                      }
                    ],
                    "id": 10249,
                    "name": "ExpressionStatement",
                    "src": "4112:76:30"
                  },
                  {
                    "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,
                              "member_name": "beneficiary",
                              "referencedDeclaration": 10064,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10102,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 10250,
                                        "name": "Identifier",
                                        "src": "4198:17:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10169,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 10251,
                                        "name": "Identifier",
                                        "src": "4216:7:30"
                                      }
                                    ],
                                    "id": 10253,
                                    "name": "IndexAccess",
                                    "src": "4198:26:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10183,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 10252,
                                    "name": "Identifier",
                                    "src": "4225:10:30"
                                  }
                                ],
                                "id": 10254,
                                "name": "IndexAccess",
                                "src": "4198:38:30"
                              }
                            ],
                            "id": 10255,
                            "name": "MemberAccess",
                            "src": "4198:50:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10150,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 10256,
                            "name": "Identifier",
                            "src": "4251:12:30"
                          }
                        ],
                        "id": 10257,
                        "name": "Assignment",
                        "src": "4198:65:30"
                      }
                    ],
                    "id": 10258,
                    "name": "ExpressionStatement",
                    "src": "4198:65:30"
                  },
                  {
                    "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,
                              "member_name": "returnOnCancelAddress",
                              "referencedDeclaration": 10066,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10102,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 10259,
                                        "name": "Identifier",
                                        "src": "4273:17:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10169,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 10260,
                                        "name": "Identifier",
                                        "src": "4291:7:30"
                                      }
                                    ],
                                    "id": 10262,
                                    "name": "IndexAccess",
                                    "src": "4273:26:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10183,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 10261,
                                    "name": "Identifier",
                                    "src": "4300:10:30"
                                  }
                                ],
                                "id": 10263,
                                "name": "IndexAccess",
                                "src": "4273:38:30"
                              }
                            ],
                            "id": 10264,
                            "name": "MemberAccess",
                            "src": "4273:60:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10152,
                              "type": "address",
                              "value": "_returnOnCancelAddress"
                            },
                            "id": 10265,
                            "name": "Identifier",
                            "src": "4336:22:30"
                          }
                        ],
                        "id": 10266,
                        "name": "Assignment",
                        "src": "4273:85:30"
                      }
                    ],
                    "id": 10267,
                    "name": "ExpressionStatement",
                    "src": "4273:85:30"
                  },
                  {
                    "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": "startingBlock",
                              "referencedDeclaration": 10068,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10102,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 10268,
                                        "name": "Identifier",
                                        "src": "4368:17:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10169,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 10269,
                                        "name": "Identifier",
                                        "src": "4386:7:30"
                                      }
                                    ],
                                    "id": 10271,
                                    "name": "IndexAccess",
                                    "src": "4368:26:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10183,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 10270,
                                    "name": "Identifier",
                                    "src": "4395:10:30"
                                  }
                                ],
                                "id": 10272,
                                "name": "IndexAccess",
                                "src": "4368:38:30"
                              }
                            ],
                            "id": 10273,
                            "name": "MemberAccess",
                            "src": "4368:52:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10154,
                              "type": "uint256",
                              "value": "_startingBlock"
                            },
                            "id": 10274,
                            "name": "Identifier",
                            "src": "4423:14:30"
                          }
                        ],
                        "id": 10275,
                        "name": "Assignment",
                        "src": "4368:69:30"
                      }
                    ],
                    "id": 10276,
                    "name": "ExpressionStatement",
                    "src": "4368:69:30"
                  },
                  {
                    "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": "amountPerPeriod",
                              "referencedDeclaration": 10070,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10102,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 10277,
                                        "name": "Identifier",
                                        "src": "4447:17:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10169,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 10278,
                                        "name": "Identifier",
                                        "src": "4465:7:30"
                                      }
                                    ],
                                    "id": 10280,
                                    "name": "IndexAccess",
                                    "src": "4447:26:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10183,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 10279,
                                    "name": "Identifier",
                                    "src": "4474:10:30"
                                  }
                                ],
                                "id": 10281,
                                "name": "IndexAccess",
                                "src": "4447:38:30"
                              }
                            ],
                            "id": 10282,
                            "name": "MemberAccess",
                            "src": "4447:54:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10156,
                              "type": "uint256",
                              "value": "_amountPerPeriod"
                            },
                            "id": 10283,
                            "name": "Identifier",
                            "src": "4504:16:30"
                          }
                        ],
                        "id": 10284,
                        "name": "Assignment",
                        "src": "4447:73:30"
                      }
                    ],
                    "id": 10285,
                    "name": "ExpressionStatement",
                    "src": "4447:73:30"
                  },
                  {
                    "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": "periodLength",
                              "referencedDeclaration": 10072,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10102,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 10286,
                                        "name": "Identifier",
                                        "src": "4530:17:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10169,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 10287,
                                        "name": "Identifier",
                                        "src": "4548:7:30"
                                      }
                                    ],
                                    "id": 10289,
                                    "name": "IndexAccess",
                                    "src": "4530:26:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10183,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 10288,
                                    "name": "Identifier",
                                    "src": "4557:10:30"
                                  }
                                ],
                                "id": 10290,
                                "name": "IndexAccess",
                                "src": "4530:38:30"
                              }
                            ],
                            "id": 10291,
                            "name": "MemberAccess",
                            "src": "4530:51:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10158,
                              "type": "uint256",
                              "value": "_periodLength"
                            },
                            "id": 10292,
                            "name": "Identifier",
                            "src": "4584:13:30"
                          }
                        ],
                        "id": 10293,
                        "name": "Assignment",
                        "src": "4530:67:30"
                      }
                    ],
                    "id": 10294,
                    "name": "ExpressionStatement",
                    "src": "4530:67:30"
                  },
                  {
                    "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": "numOfAgreedPeriods",
                              "referencedDeclaration": 10074,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10102,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 10295,
                                        "name": "Identifier",
                                        "src": "4607:17:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10169,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 10296,
                                        "name": "Identifier",
                                        "src": "4625:7:30"
                                      }
                                    ],
                                    "id": 10298,
                                    "name": "IndexAccess",
                                    "src": "4607:26:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10183,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 10297,
                                    "name": "Identifier",
                                    "src": "4634:10:30"
                                  }
                                ],
                                "id": 10299,
                                "name": "IndexAccess",
                                "src": "4607:38:30"
                              }
                            ],
                            "id": 10300,
                            "name": "MemberAccess",
                            "src": "4607:57:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10160,
                              "type": "uint256",
                              "value": "_numOfAgreedPeriods"
                            },
                            "id": 10301,
                            "name": "Identifier",
                            "src": "4667:19:30"
                          }
                        ],
                        "id": 10302,
                        "name": "Assignment",
                        "src": "4607:79:30"
                      }
                    ],
                    "id": 10303,
                    "name": "ExpressionStatement",
                    "src": "4607:79:30"
                  },
                  {
                    "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": "cliffInPeriods",
                              "referencedDeclaration": 10076,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10102,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 10304,
                                        "name": "Identifier",
                                        "src": "4696:17:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10169,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 10305,
                                        "name": "Identifier",
                                        "src": "4714:7:30"
                                      }
                                    ],
                                    "id": 10307,
                                    "name": "IndexAccess",
                                    "src": "4696:26:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10183,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 10306,
                                    "name": "Identifier",
                                    "src": "4723:10:30"
                                  }
                                ],
                                "id": 10308,
                                "name": "IndexAccess",
                                "src": "4696:38:30"
                              }
                            ],
                            "id": 10309,
                            "name": "MemberAccess",
                            "src": "4696:53:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10162,
                              "type": "uint256",
                              "value": "_cliffInPeriods"
                            },
                            "id": 10310,
                            "name": "Identifier",
                            "src": "4752:15:30"
                          }
                        ],
                        "id": 10311,
                        "name": "Assignment",
                        "src": "4696:71:30"
                      }
                    ],
                    "id": 10312,
                    "name": "ExpressionStatement",
                    "src": "4696:71:30"
                  },
                  {
                    "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": "signaturesReqToCancel",
                              "referencedDeclaration": 10078,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10102,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 10313,
                                        "name": "Identifier",
                                        "src": "4777:17:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10169,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 10314,
                                        "name": "Identifier",
                                        "src": "4795:7:30"
                                      }
                                    ],
                                    "id": 10316,
                                    "name": "IndexAccess",
                                    "src": "4777:26:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10183,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 10315,
                                    "name": "Identifier",
                                    "src": "4804:10:30"
                                  }
                                ],
                                "id": 10317,
                                "name": "IndexAccess",
                                "src": "4777:38:30"
                              }
                            ],
                            "id": 10318,
                            "name": "MemberAccess",
                            "src": "4777:60:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10164,
                              "type": "uint256",
                              "value": "_signaturesReqToCancel"
                            },
                            "id": 10319,
                            "name": "Identifier",
                            "src": "4840:22:30"
                          }
                        ],
                        "id": 10320,
                        "name": "Assignment",
                        "src": "4777:85:30"
                      }
                    ],
                    "id": 10321,
                    "name": "ExpressionStatement",
                    "src": "4777:85:30"
                  },
                  {
                    "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_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "ownerVote",
                              "referencedDeclaration": 3398,
                              "type": "function (bytes32,uint256,address) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "intVote",
                                  "referencedDeclaration": 10095,
                                  "type": "contract IntVoteInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10175,
                                      "type": "struct VestingScheme.Parameters memory",
                                      "value": "params"
                                    },
                                    "id": 10322,
                                    "name": "Identifier",
                                    "src": "4873:6:30"
                                  }
                                ],
                                "id": 10325,
                                "name": "MemberAccess",
                                "src": "4873:14:30"
                              }
                            ],
                            "id": 10326,
                            "name": "MemberAccess",
                            "src": "4873:24:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10183,
                              "type": "bytes32",
                              "value": "proposalId"
                            },
                            "id": 10327,
                            "name": "Identifier",
                            "src": "4898:10:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 10328,
                            "name": "Literal",
                            "src": "4910:1:30"
                          },
                          {
                            "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": 10329,
                                "name": "Identifier",
                                "src": "4913:3:30"
                              }
                            ],
                            "id": 10330,
                            "name": "MemberAccess",
                            "src": "4913:10:30"
                          }
                        ],
                        "id": 10331,
                        "name": "FunctionCall",
                        "src": "4873:51:30"
                      }
                    ],
                    "id": 10332,
                    "name": "ExpressionStatement",
                    "src": "4873:51:30"
                  },
                  {
                    "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$_Avatar_$3873",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10028,
                              "type": "function (address,bytes32)",
                              "value": "AgreementProposal"
                            },
                            "id": 10333,
                            "name": "Identifier",
                            "src": "5007:17:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10169,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 10334,
                            "name": "Identifier",
                            "src": "5025:7:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10183,
                              "type": "bytes32",
                              "value": "proposalId"
                            },
                            "id": 10335,
                            "name": "Identifier",
                            "src": "5034:10:30"
                          }
                        ],
                        "id": 10336,
                        "name": "FunctionCall",
                        "src": "5007:38:30"
                      }
                    ],
                    "id": 10337,
                    "name": "ExpressionStatement",
                    "src": "5007:38:30"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 10173
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 10183,
                          "type": "bytes32",
                          "value": "proposalId"
                        },
                        "id": 10338,
                        "name": "Identifier",
                        "src": "5062:10:30"
                      }
                    ],
                    "id": 10339,
                    "name": "Return",
                    "src": "5055:17:30"
                  }
                ],
                "id": 10340,
                "name": "Block",
                "src": "3546:1533:30"
              }
            ],
            "id": 10341,
            "name": "FunctionDefinition",
            "src": "3153:1926:30"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "createVestedAgreement",
              "payable": false,
              "scope": 10888,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_token",
                      "scope": 10498,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 10342,
                        "name": "UserDefinedTypeName",
                        "src": "5902:13:30"
                      }
                    ],
                    "id": 10343,
                    "name": "VariableDeclaration",
                    "src": "5902:20:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_beneficiary",
                      "scope": 10498,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10344,
                        "name": "ElementaryTypeName",
                        "src": "5932:7:30"
                      }
                    ],
                    "id": 10345,
                    "name": "VariableDeclaration",
                    "src": "5932:20:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_returnOnCancelAddress",
                      "scope": 10498,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10346,
                        "name": "ElementaryTypeName",
                        "src": "5962:7:30"
                      }
                    ],
                    "id": 10347,
                    "name": "VariableDeclaration",
                    "src": "5962:30:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_startingBlock",
                      "scope": 10498,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10348,
                        "name": "ElementaryTypeName",
                        "src": "6002:4:30"
                      }
                    ],
                    "id": 10349,
                    "name": "VariableDeclaration",
                    "src": "6002:19:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amountPerPeriod",
                      "scope": 10498,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10350,
                        "name": "ElementaryTypeName",
                        "src": "6031:4:30"
                      }
                    ],
                    "id": 10351,
                    "name": "VariableDeclaration",
                    "src": "6031:21:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_periodLength",
                      "scope": 10498,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10352,
                        "name": "ElementaryTypeName",
                        "src": "6062:4:30"
                      }
                    ],
                    "id": 10353,
                    "name": "VariableDeclaration",
                    "src": "6062:18:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_numOfAgreedPeriods",
                      "scope": 10498,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10354,
                        "name": "ElementaryTypeName",
                        "src": "6090:4:30"
                      }
                    ],
                    "id": 10355,
                    "name": "VariableDeclaration",
                    "src": "6090:24:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_cliffInPeriods",
                      "scope": 10498,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10356,
                        "name": "ElementaryTypeName",
                        "src": "6124:4:30"
                      }
                    ],
                    "id": 10357,
                    "name": "VariableDeclaration",
                    "src": "6124:20:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_signaturesReqToCancel",
                      "scope": 10498,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10358,
                        "name": "ElementaryTypeName",
                        "src": "6154:4:30"
                      }
                    ],
                    "id": 10359,
                    "name": "VariableDeclaration",
                    "src": "6154:27:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_signersArray",
                      "scope": 10498,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address[] calldata",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "address[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "type": "address"
                            },
                            "id": 10360,
                            "name": "ElementaryTypeName",
                            "src": "6191:7:30"
                          }
                        ],
                        "id": 10361,
                        "name": "ArrayTypeName",
                        "src": "6191:9:30"
                      }
                    ],
                    "id": 10362,
                    "name": "VariableDeclaration",
                    "src": "6191:23:30"
                  }
                ],
                "id": 10363,
                "name": "ParameterList",
                "src": "5892:328:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 10498,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10364,
                        "name": "ElementaryTypeName",
                        "src": "6254:4:30"
                      }
                    ],
                    "id": 10365,
                    "name": "VariableDeclaration",
                    "src": "6254:4:30"
                  }
                ],
                "id": 10366,
                "name": "ParameterList",
                "src": "6253:6:30"
              },
              {
                "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": 12002,
                              "type": "function (bool) pure",
                              "value": "assert"
                            },
                            "id": 10367,
                            "name": "Identifier",
                            "src": "6274:6:30"
                          },
                          {
                            "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": 10359,
                                  "type": "uint256",
                                  "value": "_signaturesReqToCancel"
                                },
                                "id": 10368,
                                "name": "Identifier",
                                "src": "6281:22:30"
                              },
                              {
                                "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": 10362,
                                      "type": "address[] calldata",
                                      "value": "_signersArray"
                                    },
                                    "id": 10369,
                                    "name": "Identifier",
                                    "src": "6307:13:30"
                                  }
                                ],
                                "id": 10370,
                                "name": "MemberAccess",
                                "src": "6307:20:30"
                              }
                            ],
                            "id": 10371,
                            "name": "BinaryOperation",
                            "src": "6281:46:30"
                          }
                        ],
                        "id": 10372,
                        "name": "FunctionCall",
                        "src": "6274:54:30"
                      }
                    ],
                    "id": 10373,
                    "name": "ExpressionStatement",
                    "src": "6274:54:30"
                  },
                  {
                    "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": 12002,
                              "type": "function (bool) pure",
                              "value": "assert"
                            },
                            "id": 10374,
                            "name": "Identifier",
                            "src": "6338:6:30"
                          },
                          {
                            "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": 10353,
                                  "type": "uint256",
                                  "value": "_periodLength"
                                },
                                "id": 10375,
                                "name": "Identifier",
                                "src": "6345:13:30"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 10376,
                                "name": "Literal",
                                "src": "6361:1:30"
                              }
                            ],
                            "id": 10377,
                            "name": "BinaryOperation",
                            "src": "6345:17:30"
                          }
                        ],
                        "id": 10378,
                        "name": "FunctionCall",
                        "src": "6338:25:30"
                      }
                    ],
                    "id": 10379,
                    "name": "ExpressionStatement",
                    "src": "6338:25:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        10381
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "totalAmount",
                          "scope": 10498,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 10380,
                            "name": "ElementaryTypeName",
                            "src": "6399:4:30"
                          }
                        ],
                        "id": 10381,
                        "name": "VariableDeclaration",
                        "src": "6399:16:30"
                      },
                      {
                        "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_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "mul",
                              "referencedDeclaration": 11302,
                              "type": "function (uint256,uint256) pure returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10351,
                                  "type": "uint256",
                                  "value": "_amountPerPeriod"
                                },
                                "id": 10382,
                                "name": "Identifier",
                                "src": "6418:16:30"
                              }
                            ],
                            "id": 10383,
                            "name": "MemberAccess",
                            "src": "6418:20:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10355,
                              "type": "uint256",
                              "value": "_numOfAgreedPeriods"
                            },
                            "id": 10384,
                            "name": "Identifier",
                            "src": "6439:19:30"
                          }
                        ],
                        "id": 10385,
                        "name": "FunctionCall",
                        "src": "6418:41:30"
                      }
                    ],
                    "id": 10386,
                    "name": "VariableDeclarationStatement",
                    "src": "6399:60:30"
                  },
                  {
                    "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_contract$_VestingScheme_$10888",
                                  "typeString": "contract VestingScheme"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transferFrom",
                              "referencedDeclaration": 11853,
                              "type": "function (address,address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10343,
                                  "type": "contract StandardToken",
                                  "value": "_token"
                                },
                                "id": 10387,
                                "name": "Identifier",
                                "src": "6469:6:30"
                              }
                            ],
                            "id": 10389,
                            "name": "MemberAccess",
                            "src": "6469:19:30"
                          },
                          {
                            "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": 10390,
                                "name": "Identifier",
                                "src": "6489:3:30"
                              }
                            ],
                            "id": 10391,
                            "name": "MemberAccess",
                            "src": "6489:10:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12106,
                              "type": "contract VestingScheme",
                              "value": "this"
                            },
                            "id": 10392,
                            "name": "Identifier",
                            "src": "6501:4:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10381,
                              "type": "uint256",
                              "value": "totalAmount"
                            },
                            "id": 10393,
                            "name": "Identifier",
                            "src": "6507:11:30"
                          }
                        ],
                        "id": 10394,
                        "name": "FunctionCall",
                        "src": "6469:50:30"
                      }
                    ],
                    "id": 10395,
                    "name": "ExpressionStatement",
                    "src": "6469:50:30"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract StandardToken"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "token",
                              "referencedDeclaration": 10062,
                              "type": "contract StandardToken"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10110,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 10396,
                                    "name": "Identifier",
                                    "src": "6559:10:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10112,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 10397,
                                    "name": "Identifier",
                                    "src": "6570:17:30"
                                  }
                                ],
                                "id": 10398,
                                "name": "IndexAccess",
                                "src": "6559:29:30"
                              }
                            ],
                            "id": 10399,
                            "name": "MemberAccess",
                            "src": "6559:35:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10343,
                              "type": "contract StandardToken",
                              "value": "_token"
                            },
                            "id": 10400,
                            "name": "Identifier",
                            "src": "6597:6:30"
                          }
                        ],
                        "id": 10401,
                        "name": "Assignment",
                        "src": "6559:44:30"
                      }
                    ],
                    "id": 10402,
                    "name": "ExpressionStatement",
                    "src": "6559:44:30"
                  },
                  {
                    "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,
                              "member_name": "beneficiary",
                              "referencedDeclaration": 10064,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10110,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 10403,
                                    "name": "Identifier",
                                    "src": "6613:10:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10112,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 10404,
                                    "name": "Identifier",
                                    "src": "6624:17:30"
                                  }
                                ],
                                "id": 10405,
                                "name": "IndexAccess",
                                "src": "6613:29:30"
                              }
                            ],
                            "id": 10406,
                            "name": "MemberAccess",
                            "src": "6613:41:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10345,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 10407,
                            "name": "Identifier",
                            "src": "6657:12:30"
                          }
                        ],
                        "id": 10408,
                        "name": "Assignment",
                        "src": "6613:56:30"
                      }
                    ],
                    "id": 10409,
                    "name": "ExpressionStatement",
                    "src": "6613:56:30"
                  },
                  {
                    "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,
                              "member_name": "returnOnCancelAddress",
                              "referencedDeclaration": 10066,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10110,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 10410,
                                    "name": "Identifier",
                                    "src": "6679:10:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10112,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 10411,
                                    "name": "Identifier",
                                    "src": "6690:17:30"
                                  }
                                ],
                                "id": 10412,
                                "name": "IndexAccess",
                                "src": "6679:29:30"
                              }
                            ],
                            "id": 10413,
                            "name": "MemberAccess",
                            "src": "6679:51:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10347,
                              "type": "address",
                              "value": "_returnOnCancelAddress"
                            },
                            "id": 10414,
                            "name": "Identifier",
                            "src": "6733:22:30"
                          }
                        ],
                        "id": 10415,
                        "name": "Assignment",
                        "src": "6679:76:30"
                      }
                    ],
                    "id": 10416,
                    "name": "ExpressionStatement",
                    "src": "6679:76:30"
                  },
                  {
                    "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": "startingBlock",
                              "referencedDeclaration": 10068,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10110,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 10417,
                                    "name": "Identifier",
                                    "src": "6765:10:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10112,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 10418,
                                    "name": "Identifier",
                                    "src": "6776:17:30"
                                  }
                                ],
                                "id": 10419,
                                "name": "IndexAccess",
                                "src": "6765:29:30"
                              }
                            ],
                            "id": 10420,
                            "name": "MemberAccess",
                            "src": "6765:43:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10349,
                              "type": "uint256",
                              "value": "_startingBlock"
                            },
                            "id": 10421,
                            "name": "Identifier",
                            "src": "6811:14:30"
                          }
                        ],
                        "id": 10422,
                        "name": "Assignment",
                        "src": "6765:60:30"
                      }
                    ],
                    "id": 10423,
                    "name": "ExpressionStatement",
                    "src": "6765:60:30"
                  },
                  {
                    "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": "amountPerPeriod",
                              "referencedDeclaration": 10070,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10110,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 10424,
                                    "name": "Identifier",
                                    "src": "6835:10:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10112,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 10425,
                                    "name": "Identifier",
                                    "src": "6846:17:30"
                                  }
                                ],
                                "id": 10426,
                                "name": "IndexAccess",
                                "src": "6835:29:30"
                              }
                            ],
                            "id": 10427,
                            "name": "MemberAccess",
                            "src": "6835:45:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10351,
                              "type": "uint256",
                              "value": "_amountPerPeriod"
                            },
                            "id": 10428,
                            "name": "Identifier",
                            "src": "6883:16:30"
                          }
                        ],
                        "id": 10429,
                        "name": "Assignment",
                        "src": "6835:64:30"
                      }
                    ],
                    "id": 10430,
                    "name": "ExpressionStatement",
                    "src": "6835:64:30"
                  },
                  {
                    "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": "periodLength",
                              "referencedDeclaration": 10072,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10110,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 10431,
                                    "name": "Identifier",
                                    "src": "6909:10:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10112,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 10432,
                                    "name": "Identifier",
                                    "src": "6920:17:30"
                                  }
                                ],
                                "id": 10433,
                                "name": "IndexAccess",
                                "src": "6909:29:30"
                              }
                            ],
                            "id": 10434,
                            "name": "MemberAccess",
                            "src": "6909:42:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10353,
                              "type": "uint256",
                              "value": "_periodLength"
                            },
                            "id": 10435,
                            "name": "Identifier",
                            "src": "6954:13:30"
                          }
                        ],
                        "id": 10436,
                        "name": "Assignment",
                        "src": "6909:58:30"
                      }
                    ],
                    "id": 10437,
                    "name": "ExpressionStatement",
                    "src": "6909:58:30"
                  },
                  {
                    "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": "numOfAgreedPeriods",
                              "referencedDeclaration": 10074,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10110,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 10438,
                                    "name": "Identifier",
                                    "src": "6977:10:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10112,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 10439,
                                    "name": "Identifier",
                                    "src": "6988:17:30"
                                  }
                                ],
                                "id": 10440,
                                "name": "IndexAccess",
                                "src": "6977:29:30"
                              }
                            ],
                            "id": 10441,
                            "name": "MemberAccess",
                            "src": "6977:48:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10355,
                              "type": "uint256",
                              "value": "_numOfAgreedPeriods"
                            },
                            "id": 10442,
                            "name": "Identifier",
                            "src": "7028:19:30"
                          }
                        ],
                        "id": 10443,
                        "name": "Assignment",
                        "src": "6977:70:30"
                      }
                    ],
                    "id": 10444,
                    "name": "ExpressionStatement",
                    "src": "6977:70:30"
                  },
                  {
                    "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": "cliffInPeriods",
                              "referencedDeclaration": 10076,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10110,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 10445,
                                    "name": "Identifier",
                                    "src": "7057:10:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10112,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 10446,
                                    "name": "Identifier",
                                    "src": "7068:17:30"
                                  }
                                ],
                                "id": 10447,
                                "name": "IndexAccess",
                                "src": "7057:29:30"
                              }
                            ],
                            "id": 10448,
                            "name": "MemberAccess",
                            "src": "7057:44:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10357,
                              "type": "uint256",
                              "value": "_cliffInPeriods"
                            },
                            "id": 10449,
                            "name": "Identifier",
                            "src": "7104:15:30"
                          }
                        ],
                        "id": 10450,
                        "name": "Assignment",
                        "src": "7057:62:30"
                      }
                    ],
                    "id": 10451,
                    "name": "ExpressionStatement",
                    "src": "7057:62:30"
                  },
                  {
                    "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": "signaturesReqToCancel",
                              "referencedDeclaration": 10078,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10110,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 10452,
                                    "name": "Identifier",
                                    "src": "7129:10:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10112,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 10453,
                                    "name": "Identifier",
                                    "src": "7140:17:30"
                                  }
                                ],
                                "id": 10454,
                                "name": "IndexAccess",
                                "src": "7129:29:30"
                              }
                            ],
                            "id": 10455,
                            "name": "MemberAccess",
                            "src": "7129:51:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10359,
                              "type": "uint256",
                              "value": "_signaturesReqToCancel"
                            },
                            "id": 10456,
                            "name": "Identifier",
                            "src": "7183:22:30"
                          }
                        ],
                        "id": 10457,
                        "name": "Assignment",
                        "src": "7129:76:30"
                      }
                    ],
                    "id": 10458,
                    "name": "ExpressionStatement",
                    "src": "7129:76:30"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            10460
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "name": "cnt",
                              "scope": 10498,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint",
                                  "type": "uint256"
                                },
                                "id": 10459,
                                "name": "ElementaryTypeName",
                                "src": "7259:4:30"
                              }
                            ],
                            "id": 10460,
                            "name": "VariableDeclaration",
                            "src": "7259:8:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 10461,
                            "name": "Literal",
                            "src": "7270:1:30"
                          }
                        ],
                        "id": 10462,
                        "name": "VariableDeclarationStatement",
                        "src": "7259:12:30"
                      },
                      {
                        "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": 10460,
                              "type": "uint256",
                              "value": "cnt"
                            },
                            "id": 10463,
                            "name": "Identifier",
                            "src": "7273:3:30"
                          },
                          {
                            "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": 10362,
                                  "type": "address[] calldata",
                                  "value": "_signersArray"
                                },
                                "id": 10464,
                                "name": "Identifier",
                                "src": "7277:13:30"
                              }
                            ],
                            "id": 10465,
                            "name": "MemberAccess",
                            "src": "7277:20:30"
                          }
                        ],
                        "id": 10466,
                        "name": "BinaryOperation",
                        "src": "7273:24:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10460,
                                  "type": "uint256",
                                  "value": "cnt"
                                },
                                "id": 10467,
                                "name": "Identifier",
                                "src": "7299:3:30"
                              }
                            ],
                            "id": 10468,
                            "name": "UnaryOperation",
                            "src": "7299:5:30"
                          }
                        ],
                        "id": 10469,
                        "name": "ExpressionStatement",
                        "src": "7299:5:30"
                      },
                      {
                        "children": [
                          {
                            "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,
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "signers",
                                          "referencedDeclaration": 10086,
                                          "type": "mapping(address => bool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct VestingScheme.Agreement storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10110,
                                                  "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                                  "value": "agreements"
                                                },
                                                "id": 10470,
                                                "name": "Identifier",
                                                "src": "7320:10:30"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10112,
                                                  "type": "uint256",
                                                  "value": "agreementsCounter"
                                                },
                                                "id": 10471,
                                                "name": "Identifier",
                                                "src": "7331:17:30"
                                              }
                                            ],
                                            "id": 10472,
                                            "name": "IndexAccess",
                                            "src": "7320:29:30"
                                          }
                                        ],
                                        "id": 10473,
                                        "name": "MemberAccess",
                                        "src": "7320:37:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "address"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10362,
                                              "type": "address[] calldata",
                                              "value": "_signersArray"
                                            },
                                            "id": 10474,
                                            "name": "Identifier",
                                            "src": "7358:13:30"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10460,
                                              "type": "uint256",
                                              "value": "cnt"
                                            },
                                            "id": 10475,
                                            "name": "Identifier",
                                            "src": "7372:3:30"
                                          }
                                        ],
                                        "id": 10476,
                                        "name": "IndexAccess",
                                        "src": "7358:18:30"
                                      }
                                    ],
                                    "id": 10477,
                                    "name": "IndexAccess",
                                    "src": "7320:57:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "74727565",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "bool",
                                      "type": "bool",
                                      "value": "true"
                                    },
                                    "id": 10478,
                                    "name": "Literal",
                                    "src": "7380:4:30"
                                  }
                                ],
                                "id": 10479,
                                "name": "Assignment",
                                "src": "7320:64:30"
                              }
                            ],
                            "id": 10480,
                            "name": "ExpressionStatement",
                            "src": "7320:64:30"
                          }
                        ],
                        "id": 10481,
                        "name": "Block",
                        "src": "7306:89:30"
                      }
                    ],
                    "id": 10482,
                    "name": "ForStatement",
                    "src": "7254:141:30"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "++",
                          "prefix": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10112,
                              "type": "uint256",
                              "value": "agreementsCounter"
                            },
                            "id": 10483,
                            "name": "Identifier",
                            "src": "7450:17:30"
                          }
                        ],
                        "id": 10484,
                        "name": "UnaryOperation",
                        "src": "7450:19:30"
                      }
                    ],
                    "id": 10485,
                    "name": "ExpressionStatement",
                    "src": "7450:19:30"
                  },
                  {
                    "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_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10040,
                              "type": "function (uint256)",
                              "value": "NewVestedAgreement"
                            },
                            "id": 10486,
                            "name": "Identifier",
                            "src": "7524:18:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "-",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10112,
                                  "type": "uint256",
                                  "value": "agreementsCounter"
                                },
                                "id": 10487,
                                "name": "Identifier",
                                "src": "7543:17:30"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 10488,
                                "name": "Literal",
                                "src": "7561:1:30"
                              }
                            ],
                            "id": 10489,
                            "name": "BinaryOperation",
                            "src": "7543:19:30"
                          }
                        ],
                        "id": 10490,
                        "name": "FunctionCall",
                        "src": "7524:39:30"
                      }
                    ],
                    "id": 10491,
                    "name": "ExpressionStatement",
                    "src": "7524:39:30"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 10366
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "-",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10112,
                                  "type": "uint256",
                                  "value": "agreementsCounter"
                                },
                                "id": 10492,
                                "name": "Identifier",
                                "src": "7580:17:30"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 10493,
                                "name": "Literal",
                                "src": "7598:1:30"
                              }
                            ],
                            "id": 10494,
                            "name": "BinaryOperation",
                            "src": "7580:19:30"
                          }
                        ],
                        "id": 10495,
                        "name": "TupleExpression",
                        "src": "7579:21:30"
                      }
                    ],
                    "id": 10496,
                    "name": "Return",
                    "src": "7573:27:30"
                  }
                ],
                "id": 10497,
                "name": "Block",
                "src": "6264:1343:30"
              }
            ],
            "id": 10498,
            "name": "FunctionDefinition",
            "src": "5862:1745:30"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "setParameters",
              "payable": false,
              "scope": 10888,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_voteParams",
                      "scope": 10531,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10499,
                        "name": "ElementaryTypeName",
                        "src": "7881:7:30"
                      }
                    ],
                    "id": 10500,
                    "name": "VariableDeclaration",
                    "src": "7881:19:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_intVote",
                      "scope": 10531,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IntVoteInterface",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IntVoteInterface",
                          "referencedDeclaration": 3459,
                          "type": "contract IntVoteInterface"
                        },
                        "id": 10501,
                        "name": "UserDefinedTypeName",
                        "src": "7910:16:30"
                      }
                    ],
                    "id": 10502,
                    "name": "VariableDeclaration",
                    "src": "7910:25:30"
                  }
                ],
                "id": 10503,
                "name": "ParameterList",
                "src": "7871:70:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 10531,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10504,
                        "name": "ElementaryTypeName",
                        "src": "7957:7:30"
                      }
                    ],
                    "id": 10505,
                    "name": "VariableDeclaration",
                    "src": "7957:7:30"
                  }
                ],
                "id": 10506,
                "name": "ParameterList",
                "src": "7956:9:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        10508
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "paramsHash",
                          "scope": 10531,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 10507,
                            "name": "ElementaryTypeName",
                            "src": "7980:7:30"
                          }
                        ],
                        "id": 10508,
                        "name": "VariableDeclaration",
                        "src": "7980:18:30"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bytes32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_IntVoteInterface_$3459",
                                  "typeString": "contract IntVoteInterface"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10547,
                              "type": "function (bytes32,contract IntVoteInterface) pure returns (bytes32)",
                              "value": "getParametersHash"
                            },
                            "id": 10509,
                            "name": "Identifier",
                            "src": "8001:17:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10500,
                              "type": "bytes32",
                              "value": "_voteParams"
                            },
                            "id": 10510,
                            "name": "Identifier",
                            "src": "8019:11:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10502,
                              "type": "contract IntVoteInterface",
                              "value": "_intVote"
                            },
                            "id": 10511,
                            "name": "Identifier",
                            "src": "8032:8:30"
                          }
                        ],
                        "id": 10512,
                        "name": "FunctionCall",
                        "src": "8001:40:30"
                      }
                    ],
                    "id": 10513,
                    "name": "VariableDeclarationStatement",
                    "src": "7980:61:30"
                  },
                  {
                    "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": "voteParams",
                              "referencedDeclaration": 10093,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Parameters storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10106,
                                      "type": "mapping(bytes32 => struct VestingScheme.Parameters storage ref)",
                                      "value": "parameters"
                                    },
                                    "id": 10514,
                                    "name": "Identifier",
                                    "src": "8051:10:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10508,
                                      "type": "bytes32",
                                      "value": "paramsHash"
                                    },
                                    "id": 10515,
                                    "name": "Identifier",
                                    "src": "8062:10:30"
                                  }
                                ],
                                "id": 10516,
                                "name": "IndexAccess",
                                "src": "8051:22:30"
                              }
                            ],
                            "id": 10517,
                            "name": "MemberAccess",
                            "src": "8051:33:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10500,
                              "type": "bytes32",
                              "value": "_voteParams"
                            },
                            "id": 10518,
                            "name": "Identifier",
                            "src": "8087:11:30"
                          }
                        ],
                        "id": 10519,
                        "name": "Assignment",
                        "src": "8051:47:30"
                      }
                    ],
                    "id": 10520,
                    "name": "ExpressionStatement",
                    "src": "8051:47:30"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract IntVoteInterface"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "intVote",
                              "referencedDeclaration": 10095,
                              "type": "contract IntVoteInterface"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Parameters storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10106,
                                      "type": "mapping(bytes32 => struct VestingScheme.Parameters storage ref)",
                                      "value": "parameters"
                                    },
                                    "id": 10521,
                                    "name": "Identifier",
                                    "src": "8108:10:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10508,
                                      "type": "bytes32",
                                      "value": "paramsHash"
                                    },
                                    "id": 10522,
                                    "name": "Identifier",
                                    "src": "8119:10:30"
                                  }
                                ],
                                "id": 10523,
                                "name": "IndexAccess",
                                "src": "8108:22:30"
                              }
                            ],
                            "id": 10524,
                            "name": "MemberAccess",
                            "src": "8108:30:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10502,
                              "type": "contract IntVoteInterface",
                              "value": "_intVote"
                            },
                            "id": 10525,
                            "name": "Identifier",
                            "src": "8141:8:30"
                          }
                        ],
                        "id": 10526,
                        "name": "Assignment",
                        "src": "8108:41:30"
                      }
                    ],
                    "id": 10527,
                    "name": "ExpressionStatement",
                    "src": "8108:41:30"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 10506
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 10508,
                          "type": "bytes32",
                          "value": "paramsHash"
                        },
                        "id": 10528,
                        "name": "Identifier",
                        "src": "8166:10:30"
                      }
                    ],
                    "id": 10529,
                    "name": "Return",
                    "src": "8159:17:30"
                  }
                ],
                "id": 10530,
                "name": "Block",
                "src": "7970:213:30"
              }
            ],
            "id": 10531,
            "name": "FunctionDefinition",
            "src": "7849:334:30"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getParametersHash",
              "payable": false,
              "scope": 10888,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_voteParams",
                      "scope": 10547,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10532,
                        "name": "ElementaryTypeName",
                        "src": "8437:7:30"
                      }
                    ],
                    "id": 10533,
                    "name": "VariableDeclaration",
                    "src": "8437:19:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_intVote",
                      "scope": 10547,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IntVoteInterface",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IntVoteInterface",
                          "referencedDeclaration": 3459,
                          "type": "contract IntVoteInterface"
                        },
                        "id": 10534,
                        "name": "UserDefinedTypeName",
                        "src": "8466:16:30"
                      }
                    ],
                    "id": 10535,
                    "name": "VariableDeclaration",
                    "src": "8466:25:30"
                  }
                ],
                "id": 10536,
                "name": "ParameterList",
                "src": "8427:70:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 10547,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10537,
                        "name": "ElementaryTypeName",
                        "src": "8518:7:30"
                      }
                    ],
                    "id": 10538,
                    "name": "VariableDeclaration",
                    "src": "8518:7:30"
                  }
                ],
                "id": 10539,
                "name": "ParameterList",
                "src": "8517:9:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 10539
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_contract$_IntVoteInterface_$3459",
                                      "typeString": "contract IntVoteInterface"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12005,
                                  "type": "function () pure returns (bytes32)",
                                  "value": "keccak256"
                                },
                                "id": 10540,
                                "name": "Identifier",
                                "src": "8550:9:30"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10533,
                                  "type": "bytes32",
                                  "value": "_voteParams"
                                },
                                "id": 10541,
                                "name": "Identifier",
                                "src": "8560:11:30"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10535,
                                  "type": "contract IntVoteInterface",
                                  "value": "_intVote"
                                },
                                "id": 10542,
                                "name": "Identifier",
                                "src": "8573:8:30"
                              }
                            ],
                            "id": 10543,
                            "name": "FunctionCall",
                            "src": "8550:32:30"
                          }
                        ],
                        "id": 10544,
                        "name": "TupleExpression",
                        "src": "8549:34:30"
                      }
                    ],
                    "id": 10545,
                    "name": "Return",
                    "src": "8541:42:30"
                  }
                ],
                "id": 10546,
                "name": "Block",
                "src": "8531:59:30"
              }
            ],
            "id": 10547,
            "name": "FunctionDefinition",
            "src": "8401:189:30"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "execute",
              "payable": false,
              "scope": 10888,
              "stateMutability": "nonpayable",
              "superFunction": 8020,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_proposalId",
                      "scope": 10643,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10548,
                        "name": "ElementaryTypeName",
                        "src": "8987:7:30"
                      }
                    ],
                    "id": 10549,
                    "name": "VariableDeclaration",
                    "src": "8987:19:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 10643,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10550,
                        "name": "ElementaryTypeName",
                        "src": "9008:7:30"
                      }
                    ],
                    "id": 10551,
                    "name": "VariableDeclaration",
                    "src": "9008:15:30"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_param",
                      "scope": 10643,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int",
                          "type": "int256"
                        },
                        "id": 10552,
                        "name": "ElementaryTypeName",
                        "src": "9025:3:30"
                      }
                    ],
                    "id": 10553,
                    "name": "VariableDeclaration",
                    "src": "9025:10:30"
                  }
                ],
                "id": 10554,
                "name": "ParameterList",
                "src": "8986:50:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 10643,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 10555,
                        "name": "ElementaryTypeName",
                        "src": "9052:4:30"
                      }
                    ],
                    "id": 10556,
                    "name": "VariableDeclaration",
                    "src": "9052:4:30"
                  }
                ],
                "id": 10557,
                "name": "ParameterList",
                "src": "9051:6:30"
              },
              {
                "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": 10558,
                            "name": "Identifier",
                            "src": "9126:7:30"
                          },
                          {
                            "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,
                                  "member_name": "intVote",
                                  "referencedDeclaration": 10095,
                                  "type": "contract IntVoteInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct VestingScheme.Parameters storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10106,
                                          "type": "mapping(bytes32 => struct VestingScheme.Parameters storage ref)",
                                          "value": "parameters"
                                        },
                                        "id": 10559,
                                        "name": "Identifier",
                                        "src": "9134:10:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "bytes32",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_contract$_Avatar_$3873",
                                                  "typeString": "contract Avatar"
                                                }
                                              ],
                                              "overloadedDeclarations": [
                                                9584
                                              ],
                                              "referencedDeclaration": 9584,
                                              "type": "function (contract Avatar) view returns (bytes32)",
                                              "value": "getParametersFromController"
                                            },
                                            "id": 10560,
                                            "name": "Identifier",
                                            "src": "9145:27:30"
                                          },
                                          {
                                            "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": 10561,
                                                "name": "Identifier",
                                                "src": "9173:6:30"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10551,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 10562,
                                                "name": "Identifier",
                                                "src": "9180:7:30"
                                              }
                                            ],
                                            "id": 10563,
                                            "name": "FunctionCall",
                                            "src": "9173:15:30"
                                          }
                                        ],
                                        "id": 10564,
                                        "name": "FunctionCall",
                                        "src": "9145:44:30"
                                      }
                                    ],
                                    "id": 10565,
                                    "name": "IndexAccess",
                                    "src": "9134:56:30"
                                  }
                                ],
                                "id": 10566,
                                "name": "MemberAccess",
                                "src": "9134:64:30"
                              },
                              {
                                "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": 10567,
                                    "name": "Identifier",
                                    "src": "9202:3:30"
                                  }
                                ],
                                "id": 10568,
                                "name": "MemberAccess",
                                "src": "9202:10:30"
                              }
                            ],
                            "id": 10569,
                            "name": "BinaryOperation",
                            "src": "9134:78:30"
                          }
                        ],
                        "id": 10570,
                        "name": "FunctionCall",
                        "src": "9126:87:30"
                      }
                    ],
                    "id": 10571,
                    "name": "ExpressionStatement",
                    "src": "9126:87:30"
                  },
                  {
                    "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"
                                },
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10036,
                              "type": "function (address,bytes32,int256)",
                              "value": "Execution"
                            },
                            "id": 10572,
                            "name": "Identifier",
                            "src": "9224:9:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10551,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 10573,
                            "name": "Identifier",
                            "src": "9234:7:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10549,
                              "type": "bytes32",
                              "value": "_proposalId"
                            },
                            "id": 10574,
                            "name": "Identifier",
                            "src": "9243:11:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10553,
                              "type": "int256",
                              "value": "_param"
                            },
                            "id": 10575,
                            "name": "Identifier",
                            "src": "9256:6:30"
                          }
                        ],
                        "id": 10576,
                        "name": "FunctionCall",
                        "src": "9224:39:30"
                      }
                    ],
                    "id": 10577,
                    "name": "ExpressionStatement",
                    "src": "9224:39:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        10579
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "proposedAgreement",
                          "scope": 10643,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct VestingScheme.Agreement memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Agreement",
                              "referencedDeclaration": 10091,
                              "type": "struct VestingScheme.Agreement storage pointer"
                            },
                            "id": 10578,
                            "name": "UserDefinedTypeName",
                            "src": "9274:9:30"
                          }
                        ],
                        "id": 10579,
                        "name": "VariableDeclaration",
                        "src": "9274:34:30"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct VestingScheme.Agreement storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10102,
                                  "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                  "value": "organizationsData"
                                },
                                "id": 10580,
                                "name": "Identifier",
                                "src": "9311:17:30"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10551,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 10581,
                                "name": "Identifier",
                                "src": "9329:7:30"
                              }
                            ],
                            "id": 10582,
                            "name": "IndexAccess",
                            "src": "9311:26:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10549,
                              "type": "bytes32",
                              "value": "_proposalId"
                            },
                            "id": 10583,
                            "name": "Identifier",
                            "src": "9338:11:30"
                          }
                        ],
                        "id": 10584,
                        "name": "IndexAccess",
                        "src": "9311:39:30"
                      }
                    ],
                    "id": 10585,
                    "name": "VariableDeclarationStatement",
                    "src": "9274:76:30"
                  },
                  {
                    "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 VestingScheme.Agreement storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10102,
                                      "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                      "value": "organizationsData"
                                    },
                                    "id": 10586,
                                    "name": "Identifier",
                                    "src": "9367:17:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10551,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 10587,
                                    "name": "Identifier",
                                    "src": "9385:7:30"
                                  }
                                ],
                                "id": 10588,
                                "name": "IndexAccess",
                                "src": "9367:26:30"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10549,
                                  "type": "bytes32",
                                  "value": "_proposalId"
                                },
                                "id": 10589,
                                "name": "Identifier",
                                "src": "9394:11:30"
                              }
                            ],
                            "id": 10590,
                            "name": "IndexAccess",
                            "src": "9367:39:30"
                          }
                        ],
                        "id": 10591,
                        "name": "UnaryOperation",
                        "src": "9360:46:30"
                      }
                    ],
                    "id": 10592,
                    "name": "ExpressionStatement",
                    "src": "9360:46:30"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10553,
                              "type": "int256",
                              "value": "_param"
                            },
                            "id": 10593,
                            "name": "Identifier",
                            "src": "9462:6:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 10594,
                            "name": "Literal",
                            "src": "9472:1:30"
                          }
                        ],
                        "id": 10595,
                        "name": "BinaryOperation",
                        "src": "9462:11:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                10597
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "name": "controller",
                                  "scope": 10643,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "contract ControllerInterface",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "contractScope": null,
                                      "name": "ControllerInterface",
                                      "referencedDeclaration": 5172,
                                      "type": "contract ControllerInterface"
                                    },
                                    "id": 10596,
                                    "name": "UserDefinedTypeName",
                                    "src": "9570:19:30"
                                  }
                                ],
                                "id": 10597,
                                "name": "VariableDeclaration",
                                "src": "9570:30:30"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "contract ControllerInterface",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5172,
                                      "type": "type(contract ControllerInterface)",
                                      "value": "ControllerInterface"
                                    },
                                    "id": 10598,
                                    "name": "Identifier",
                                    "src": "9603:19:30"
                                  },
                                  {
                                    "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": 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": 10599,
                                                "name": "Identifier",
                                                "src": "9623:6:30"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10551,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 10600,
                                                "name": "Identifier",
                                                "src": "9630:7:30"
                                              }
                                            ],
                                            "id": 10601,
                                            "name": "FunctionCall",
                                            "src": "9623:15:30"
                                          }
                                        ],
                                        "id": 10602,
                                        "name": "MemberAccess",
                                        "src": "9623:21:30"
                                      }
                                    ],
                                    "id": 10603,
                                    "name": "FunctionCall",
                                    "src": "9623:23:30"
                                  }
                                ],
                                "id": 10604,
                                "name": "FunctionCall",
                                "src": "9603:44:30"
                              }
                            ],
                            "id": 10605,
                            "name": "VariableDeclarationStatement",
                            "src": "9570:77:30"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                10607
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "name": "tokensToMint",
                                  "scope": 10643,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint",
                                      "type": "uint256"
                                    },
                                    "id": 10606,
                                    "name": "ElementaryTypeName",
                                    "src": "9661:4:30"
                                  }
                                ],
                                "id": 10607,
                                "name": "VariableDeclaration",
                                "src": "9661:17:30"
                              },
                              {
                                "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_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "mul",
                                      "referencedDeclaration": 11302,
                                      "type": "function (uint256,uint256) pure returns (uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "amountPerPeriod",
                                          "referencedDeclaration": 10070,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10579,
                                              "type": "struct VestingScheme.Agreement memory",
                                              "value": "proposedAgreement"
                                            },
                                            "id": 10608,
                                            "name": "Identifier",
                                            "src": "9681:17:30"
                                          }
                                        ],
                                        "id": 10609,
                                        "name": "MemberAccess",
                                        "src": "9681:33:30"
                                      }
                                    ],
                                    "id": 10610,
                                    "name": "MemberAccess",
                                    "src": "9681:37:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "numOfAgreedPeriods",
                                      "referencedDeclaration": 10074,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10579,
                                          "type": "struct VestingScheme.Agreement memory",
                                          "value": "proposedAgreement"
                                        },
                                        "id": 10611,
                                        "name": "Identifier",
                                        "src": "9719:17:30"
                                      }
                                    ],
                                    "id": 10612,
                                    "name": "MemberAccess",
                                    "src": "9719:36:30"
                                  }
                                ],
                                "id": 10613,
                                "name": "FunctionCall",
                                "src": "9681:75:30"
                              }
                            ],
                            "id": 10614,
                            "name": "VariableDeclarationStatement",
                            "src": "9661:95:30"
                          },
                          {
                            "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_contract$_VestingScheme_$10888",
                                          "typeString": "contract VestingScheme"
                                        },
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "mintTokens",
                                      "referencedDeclaration": 4995,
                                      "type": "function (uint256,address,address) external returns (bool)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10597,
                                          "type": "contract ControllerInterface",
                                          "value": "controller"
                                        },
                                        "id": 10615,
                                        "name": "Identifier",
                                        "src": "9770:10:30"
                                      }
                                    ],
                                    "id": 10617,
                                    "name": "MemberAccess",
                                    "src": "9770:21:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10607,
                                      "type": "uint256",
                                      "value": "tokensToMint"
                                    },
                                    "id": 10618,
                                    "name": "Identifier",
                                    "src": "9792:12:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 12106,
                                      "type": "contract VestingScheme",
                                      "value": "this"
                                    },
                                    "id": 10619,
                                    "name": "Identifier",
                                    "src": "9806:4:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10551,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 10620,
                                    "name": "Identifier",
                                    "src": "9811:7:30"
                                  }
                                ],
                                "id": 10621,
                                "name": "FunctionCall",
                                "src": "9770:49:30"
                              }
                            ],
                            "id": 10622,
                            "name": "ExpressionStatement",
                            "src": "9770:49:30"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "struct VestingScheme.Agreement storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10110,
                                          "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                          "value": "agreements"
                                        },
                                        "id": 10623,
                                        "name": "Identifier",
                                        "src": "9833:10:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10112,
                                          "type": "uint256",
                                          "value": "agreementsCounter"
                                        },
                                        "id": 10624,
                                        "name": "Identifier",
                                        "src": "9844:17:30"
                                      }
                                    ],
                                    "id": 10625,
                                    "name": "IndexAccess",
                                    "src": "9833:29:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10579,
                                      "type": "struct VestingScheme.Agreement memory",
                                      "value": "proposedAgreement"
                                    },
                                    "id": 10626,
                                    "name": "Identifier",
                                    "src": "9865:17:30"
                                  }
                                ],
                                "id": 10627,
                                "name": "Assignment",
                                "src": "9833:49:30"
                              }
                            ],
                            "id": 10628,
                            "name": "ExpressionStatement",
                            "src": "9833:49:30"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "++",
                                  "prefix": false,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10112,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 10629,
                                    "name": "Identifier",
                                    "src": "9896:17:30"
                                  }
                                ],
                                "id": 10630,
                                "name": "UnaryOperation",
                                "src": "9896:19:30"
                              }
                            ],
                            "id": 10631,
                            "name": "ExpressionStatement",
                            "src": "9896:19:30"
                          },
                          {
                            "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_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10040,
                                      "type": "function (uint256)",
                                      "value": "NewVestedAgreement"
                                    },
                                    "id": 10632,
                                    "name": "Identifier",
                                    "src": "9963:18:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "-",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10112,
                                          "type": "uint256",
                                          "value": "agreementsCounter"
                                        },
                                        "id": 10633,
                                        "name": "Identifier",
                                        "src": "9982:17:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 10634,
                                        "name": "Literal",
                                        "src": "10000:1:30"
                                      }
                                    ],
                                    "id": 10635,
                                    "name": "BinaryOperation",
                                    "src": "9982:19:30"
                                  }
                                ],
                                "id": 10636,
                                "name": "FunctionCall",
                                "src": "9963:39:30"
                              }
                            ],
                            "id": 10637,
                            "name": "ExpressionStatement",
                            "src": "9963:39:30"
                          }
                        ],
                        "id": 10638,
                        "name": "Block",
                        "src": "9475:537:30"
                      }
                    ],
                    "id": 10639,
                    "name": "IfStatement",
                    "src": "9458:554:30"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 10557
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 10640,
                        "name": "Literal",
                        "src": "10028:4:30"
                      }
                    ],
                    "id": 10641,
                    "name": "Return",
                    "src": "10021:11:30"
                  }
                ],
                "id": 10642,
                "name": "Block",
                "src": "9058:981:30"
              }
            ],
            "id": 10643,
            "name": "FunctionDefinition",
            "src": "8970:1069:30"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "signToCancelAgreement",
              "payable": false,
              "scope": 10888,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_agreementId",
                      "scope": 10698,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10644,
                        "name": "ElementaryTypeName",
                        "src": "10193:4:30"
                      }
                    ],
                    "id": 10645,
                    "name": "VariableDeclaration",
                    "src": "10193:17:30"
                  }
                ],
                "id": 10646,
                "name": "ParameterList",
                "src": "10192:19:30"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 10650,
                "name": "ParameterList",
                "src": "10244:0:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10128,
                      "type": "modifier (uint256)",
                      "value": "onlySigner"
                    },
                    "id": 10647,
                    "name": "Identifier",
                    "src": "10219:10:30"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10645,
                      "type": "uint256",
                      "value": "_agreementId"
                    },
                    "id": 10648,
                    "name": "Identifier",
                    "src": "10230:12:30"
                  }
                ],
                "id": 10649,
                "name": "ModifierInvocation",
                "src": "10219:24:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        10652
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "agreement",
                          "scope": 10698,
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "type": "struct VestingScheme.Agreement storage pointer",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Agreement",
                              "referencedDeclaration": 10091,
                              "type": "struct VestingScheme.Agreement storage pointer"
                            },
                            "id": 10651,
                            "name": "UserDefinedTypeName",
                            "src": "10254:9:30"
                          }
                        ],
                        "id": 10652,
                        "name": "VariableDeclaration",
                        "src": "10254:27:30"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct VestingScheme.Agreement storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10110,
                              "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                              "value": "agreements"
                            },
                            "id": 10653,
                            "name": "Identifier",
                            "src": "10284:10:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10645,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 10654,
                            "name": "Identifier",
                            "src": "10295:12:30"
                          }
                        ],
                        "id": 10655,
                        "name": "IndexAccess",
                        "src": "10284:24:30"
                      }
                    ],
                    "id": 10656,
                    "name": "VariableDeclarationStatement",
                    "src": "10254:54:30"
                  },
                  {
                    "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": 10657,
                            "name": "Identifier",
                            "src": "10360:7:30"
                          },
                          {
                            "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,
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "signaturesReceived",
                                      "referencedDeclaration": 10090,
                                      "type": "mapping(address => bool)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10652,
                                          "type": "struct VestingScheme.Agreement storage pointer",
                                          "value": "agreement"
                                        },
                                        "id": 10658,
                                        "name": "Identifier",
                                        "src": "10370:9:30"
                                      }
                                    ],
                                    "id": 10659,
                                    "name": "MemberAccess",
                                    "src": "10370:28:30"
                                  },
                                  {
                                    "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": 10660,
                                        "name": "Identifier",
                                        "src": "10399:3:30"
                                      }
                                    ],
                                    "id": 10661,
                                    "name": "MemberAccess",
                                    "src": "10399:10:30"
                                  }
                                ],
                                "id": 10662,
                                "name": "IndexAccess",
                                "src": "10370:40:30"
                              }
                            ],
                            "id": 10663,
                            "name": "UnaryOperation",
                            "src": "10368:42:30"
                          }
                        ],
                        "id": 10664,
                        "name": "FunctionCall",
                        "src": "10360:51:30"
                      }
                    ],
                    "id": 10665,
                    "name": "ExpressionStatement",
                    "src": "10360:51:30"
                  },
                  {
                    "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,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "signaturesReceived",
                                  "referencedDeclaration": 10090,
                                  "type": "mapping(address => bool)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10652,
                                      "type": "struct VestingScheme.Agreement storage pointer",
                                      "value": "agreement"
                                    },
                                    "id": 10666,
                                    "name": "Identifier",
                                    "src": "10439:9:30"
                                  }
                                ],
                                "id": 10670,
                                "name": "MemberAccess",
                                "src": "10439:28:30"
                              },
                              {
                                "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": 10668,
                                    "name": "Identifier",
                                    "src": "10468:3:30"
                                  }
                                ],
                                "id": 10669,
                                "name": "MemberAccess",
                                "src": "10468:10:30"
                              }
                            ],
                            "id": 10671,
                            "name": "IndexAccess",
                            "src": "10439:40:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "74727565",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "true"
                            },
                            "id": 10672,
                            "name": "Literal",
                            "src": "10482:4:30"
                          }
                        ],
                        "id": 10673,
                        "name": "Assignment",
                        "src": "10439:47:30"
                      }
                    ],
                    "id": 10674,
                    "name": "ExpressionStatement",
                    "src": "10439:47:30"
                  },
                  {
                    "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": "signaturesReceivedCounter",
                              "referencedDeclaration": 10082,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10652,
                                  "type": "struct VestingScheme.Agreement storage pointer",
                                  "value": "agreement"
                                },
                                "id": 10675,
                                "name": "Identifier",
                                "src": "10496:9:30"
                              }
                            ],
                            "id": 10677,
                            "name": "MemberAccess",
                            "src": "10496:35:30"
                          }
                        ],
                        "id": 10678,
                        "name": "UnaryOperation",
                        "src": "10496:37:30"
                      }
                    ],
                    "id": 10679,
                    "name": "ExpressionStatement",
                    "src": "10496:37:30"
                  },
                  {
                    "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_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10046,
                              "type": "function (uint256,address)",
                              "value": "SignToCancelAgreement"
                            },
                            "id": 10680,
                            "name": "Identifier",
                            "src": "10544:21:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10645,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 10681,
                            "name": "Identifier",
                            "src": "10566:12:30"
                          },
                          {
                            "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": 10682,
                                "name": "Identifier",
                                "src": "10579:3:30"
                              }
                            ],
                            "id": 10683,
                            "name": "MemberAccess",
                            "src": "10579:10:30"
                          }
                        ],
                        "id": 10684,
                        "name": "FunctionCall",
                        "src": "10544:46:30"
                      }
                    ],
                    "id": 10685,
                    "name": "ExpressionStatement",
                    "src": "10544:46:30"
                  },
                  {
                    "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": "signaturesReceivedCounter",
                              "referencedDeclaration": 10082,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10652,
                                  "type": "struct VestingScheme.Agreement storage pointer",
                                  "value": "agreement"
                                },
                                "id": 10686,
                                "name": "Identifier",
                                "src": "10644:9:30"
                              }
                            ],
                            "id": 10687,
                            "name": "MemberAccess",
                            "src": "10644:35:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "signaturesReqToCancel",
                              "referencedDeclaration": 10078,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10652,
                                  "type": "struct VestingScheme.Agreement storage pointer",
                                  "value": "agreement"
                                },
                                "id": 10688,
                                "name": "Identifier",
                                "src": "10683:9:30"
                              }
                            ],
                            "id": 10689,
                            "name": "MemberAccess",
                            "src": "10683:31:30"
                          }
                        ],
                        "id": 10690,
                        "name": "BinaryOperation",
                        "src": "10644:70:30"
                      },
                      {
                        "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_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10887,
                                      "type": "function (uint256)",
                                      "value": "cancelAgreement"
                                    },
                                    "id": 10691,
                                    "name": "Identifier",
                                    "src": "10730:15:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10645,
                                      "type": "uint256",
                                      "value": "_agreementId"
                                    },
                                    "id": 10692,
                                    "name": "Identifier",
                                    "src": "10746:12:30"
                                  }
                                ],
                                "id": 10693,
                                "name": "FunctionCall",
                                "src": "10730:29:30"
                              }
                            ],
                            "id": 10694,
                            "name": "ExpressionStatement",
                            "src": "10730:29:30"
                          }
                        ],
                        "id": 10695,
                        "name": "Block",
                        "src": "10716:54:30"
                      }
                    ],
                    "id": 10696,
                    "name": "IfStatement",
                    "src": "10640:130:30"
                  }
                ],
                "id": 10697,
                "name": "Block",
                "src": "10244:532:30"
              }
            ],
            "id": 10698,
            "name": "FunctionDefinition",
            "src": "10162:614:30"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "revokeSignToCancelAgreement",
              "payable": false,
              "scope": 10888,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_agreementId",
                      "scope": 10741,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10699,
                        "name": "ElementaryTypeName",
                        "src": "10944:4:30"
                      }
                    ],
                    "id": 10700,
                    "name": "VariableDeclaration",
                    "src": "10944:17:30"
                  }
                ],
                "id": 10701,
                "name": "ParameterList",
                "src": "10943:19:30"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 10705,
                "name": "ParameterList",
                "src": "10995:0:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10128,
                      "type": "modifier (uint256)",
                      "value": "onlySigner"
                    },
                    "id": 10702,
                    "name": "Identifier",
                    "src": "10970:10:30"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10700,
                      "type": "uint256",
                      "value": "_agreementId"
                    },
                    "id": 10703,
                    "name": "Identifier",
                    "src": "10981:12:30"
                  }
                ],
                "id": 10704,
                "name": "ModifierInvocation",
                "src": "10970:24:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        10707
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "agreement",
                          "scope": 10741,
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "type": "struct VestingScheme.Agreement storage pointer",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Agreement",
                              "referencedDeclaration": 10091,
                              "type": "struct VestingScheme.Agreement storage pointer"
                            },
                            "id": 10706,
                            "name": "UserDefinedTypeName",
                            "src": "11005:9:30"
                          }
                        ],
                        "id": 10707,
                        "name": "VariableDeclaration",
                        "src": "11005:27:30"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct VestingScheme.Agreement storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10110,
                              "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                              "value": "agreements"
                            },
                            "id": 10708,
                            "name": "Identifier",
                            "src": "11035:10:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10700,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 10709,
                            "name": "Identifier",
                            "src": "11046:12:30"
                          }
                        ],
                        "id": 10710,
                        "name": "IndexAccess",
                        "src": "11035:24:30"
                      }
                    ],
                    "id": 10711,
                    "name": "VariableDeclarationStatement",
                    "src": "11005:54:30"
                  },
                  {
                    "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": 10712,
                            "name": "Identifier",
                            "src": "11104:7:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "signaturesReceived",
                                  "referencedDeclaration": 10090,
                                  "type": "mapping(address => bool)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10707,
                                      "type": "struct VestingScheme.Agreement storage pointer",
                                      "value": "agreement"
                                    },
                                    "id": 10713,
                                    "name": "Identifier",
                                    "src": "11112:9:30"
                                  }
                                ],
                                "id": 10714,
                                "name": "MemberAccess",
                                "src": "11112:28:30"
                              },
                              {
                                "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": 10715,
                                    "name": "Identifier",
                                    "src": "11141:3:30"
                                  }
                                ],
                                "id": 10716,
                                "name": "MemberAccess",
                                "src": "11141:10:30"
                              }
                            ],
                            "id": 10717,
                            "name": "IndexAccess",
                            "src": "11112:40:30"
                          }
                        ],
                        "id": 10718,
                        "name": "FunctionCall",
                        "src": "11104:49:30"
                      }
                    ],
                    "id": 10719,
                    "name": "ExpressionStatement",
                    "src": "11104:49:30"
                  },
                  {
                    "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,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "signaturesReceived",
                                  "referencedDeclaration": 10090,
                                  "type": "mapping(address => bool)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10707,
                                      "type": "struct VestingScheme.Agreement storage pointer",
                                      "value": "agreement"
                                    },
                                    "id": 10720,
                                    "name": "Identifier",
                                    "src": "11193:9:30"
                                  }
                                ],
                                "id": 10724,
                                "name": "MemberAccess",
                                "src": "11193:28:30"
                              },
                              {
                                "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": 10722,
                                    "name": "Identifier",
                                    "src": "11222:3:30"
                                  }
                                ],
                                "id": 10723,
                                "name": "MemberAccess",
                                "src": "11222:10:30"
                              }
                            ],
                            "id": 10725,
                            "name": "IndexAccess",
                            "src": "11193:40:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "66616c7365",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "false"
                            },
                            "id": 10726,
                            "name": "Literal",
                            "src": "11236:5:30"
                          }
                        ],
                        "id": 10727,
                        "name": "Assignment",
                        "src": "11193:48:30"
                      }
                    ],
                    "id": 10728,
                    "name": "ExpressionStatement",
                    "src": "11193:48:30"
                  },
                  {
                    "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": "signaturesReceivedCounter",
                              "referencedDeclaration": 10082,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10707,
                                  "type": "struct VestingScheme.Agreement storage pointer",
                                  "value": "agreement"
                                },
                                "id": 10729,
                                "name": "Identifier",
                                "src": "11251:9:30"
                              }
                            ],
                            "id": 10731,
                            "name": "MemberAccess",
                            "src": "11251:35:30"
                          }
                        ],
                        "id": 10732,
                        "name": "UnaryOperation",
                        "src": "11251:37:30"
                      }
                    ],
                    "id": 10733,
                    "name": "ExpressionStatement",
                    "src": "11251:37:30"
                  },
                  {
                    "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_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10052,
                              "type": "function (uint256,address)",
                              "value": "RevokeSignToCancelAgreement"
                            },
                            "id": 10734,
                            "name": "Identifier",
                            "src": "11299:27:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10700,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 10735,
                            "name": "Identifier",
                            "src": "11327:12:30"
                          },
                          {
                            "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": 10736,
                                "name": "Identifier",
                                "src": "11340:3:30"
                              }
                            ],
                            "id": 10737,
                            "name": "MemberAccess",
                            "src": "11340:10:30"
                          }
                        ],
                        "id": 10738,
                        "name": "FunctionCall",
                        "src": "11299:52:30"
                      }
                    ],
                    "id": 10739,
                    "name": "ExpressionStatement",
                    "src": "11299:52:30"
                  }
                ],
                "id": 10740,
                "name": "Block",
                "src": "10995:363:30"
              }
            ],
            "id": 10741,
            "name": "FunctionDefinition",
            "src": "10907:451:30"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "collect",
              "payable": false,
              "scope": 10888,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_agreementId",
                      "scope": 10839,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10742,
                        "name": "ElementaryTypeName",
                        "src": "11496:4:30"
                      }
                    ],
                    "id": 10743,
                    "name": "VariableDeclaration",
                    "src": "11496:17:30"
                  }
                ],
                "id": 10744,
                "name": "ParameterList",
                "src": "11495:19:30"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 10748,
                "name": "ParameterList",
                "src": "11552:0:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10144,
                      "type": "modifier (uint256)",
                      "value": "onlyBeneficiary"
                    },
                    "id": 10745,
                    "name": "Identifier",
                    "src": "11522:15:30"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10743,
                      "type": "uint256",
                      "value": "_agreementId"
                    },
                    "id": 10746,
                    "name": "Identifier",
                    "src": "11538:12:30"
                  }
                ],
                "id": 10747,
                "name": "ModifierInvocation",
                "src": "11522:29:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        10750
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "agreement",
                          "scope": 10839,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct VestingScheme.Agreement memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Agreement",
                              "referencedDeclaration": 10091,
                              "type": "struct VestingScheme.Agreement storage pointer"
                            },
                            "id": 10749,
                            "name": "UserDefinedTypeName",
                            "src": "11562:9:30"
                          }
                        ],
                        "id": 10750,
                        "name": "VariableDeclaration",
                        "src": "11562:26:30"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct VestingScheme.Agreement storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10110,
                              "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                              "value": "agreements"
                            },
                            "id": 10751,
                            "name": "Identifier",
                            "src": "11591:10:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10743,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 10752,
                            "name": "Identifier",
                            "src": "11602:12:30"
                          }
                        ],
                        "id": 10753,
                        "name": "IndexAccess",
                        "src": "11591:24:30"
                      }
                    ],
                    "id": 10754,
                    "name": "VariableDeclarationStatement",
                    "src": "11562:53:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        10756
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "periodsFromStartingBlock",
                          "scope": 10839,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 10755,
                            "name": "ElementaryTypeName",
                            "src": "11625:4:30"
                          }
                        ],
                        "id": 10756,
                        "name": "VariableDeclaration",
                        "src": "11625:29:30"
                      },
                      {
                        "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_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "div",
                              "referencedDeclaration": 11320,
                              "type": "function (uint256,uint256) pure returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "uint256"
                                },
                                "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_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "sub",
                                          "referencedDeclaration": 11340,
                                          "type": "function (uint256,uint256) pure returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "number",
                                              "referencedDeclaration": null,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 12003,
                                                  "type": "block",
                                                  "value": "block"
                                                },
                                                "id": 10757,
                                                "name": "Identifier",
                                                "src": "11658:5:30"
                                              }
                                            ],
                                            "id": 10758,
                                            "name": "MemberAccess",
                                            "src": "11658:12:30"
                                          }
                                        ],
                                        "id": 10759,
                                        "name": "MemberAccess",
                                        "src": "11658:16:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "startingBlock",
                                          "referencedDeclaration": 10068,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10750,
                                              "type": "struct VestingScheme.Agreement memory",
                                              "value": "agreement"
                                            },
                                            "id": 10760,
                                            "name": "Identifier",
                                            "src": "11675:9:30"
                                          }
                                        ],
                                        "id": 10761,
                                        "name": "MemberAccess",
                                        "src": "11675:23:30"
                                      }
                                    ],
                                    "id": 10762,
                                    "name": "FunctionCall",
                                    "src": "11658:41:30"
                                  }
                                ],
                                "id": 10763,
                                "name": "TupleExpression",
                                "src": "11657:43:30"
                              }
                            ],
                            "id": 10764,
                            "name": "MemberAccess",
                            "src": "11657:47:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "periodLength",
                              "referencedDeclaration": 10072,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10750,
                                  "type": "struct VestingScheme.Agreement memory",
                                  "value": "agreement"
                                },
                                "id": 10765,
                                "name": "Identifier",
                                "src": "11705:9:30"
                              }
                            ],
                            "id": 10766,
                            "name": "MemberAccess",
                            "src": "11705:22:30"
                          }
                        ],
                        "id": 10767,
                        "name": "FunctionCall",
                        "src": "11657:71:30"
                      }
                    ],
                    "id": 10768,
                    "name": "VariableDeclarationStatement",
                    "src": "11625:103:30"
                  },
                  {
                    "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": 12002,
                              "type": "function (bool) pure",
                              "value": "assert"
                            },
                            "id": 10769,
                            "name": "Identifier",
                            "src": "11738:6:30"
                          },
                          {
                            "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": 10756,
                                  "type": "uint256",
                                  "value": "periodsFromStartingBlock"
                                },
                                "id": 10770,
                                "name": "Identifier",
                                "src": "11745:24:30"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "cliffInPeriods",
                                  "referencedDeclaration": 10076,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10750,
                                      "type": "struct VestingScheme.Agreement memory",
                                      "value": "agreement"
                                    },
                                    "id": 10771,
                                    "name": "Identifier",
                                    "src": "11773:9:30"
                                  }
                                ],
                                "id": 10772,
                                "name": "MemberAccess",
                                "src": "11773:24:30"
                              }
                            ],
                            "id": 10773,
                            "name": "BinaryOperation",
                            "src": "11745:52:30"
                          }
                        ],
                        "id": 10774,
                        "name": "FunctionCall",
                        "src": "11738:60:30"
                      }
                    ],
                    "id": 10775,
                    "name": "ExpressionStatement",
                    "src": "11738:60:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        null
                      ],
                      "initialValue": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "periodsToPay",
                          "scope": 10839,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 10776,
                            "name": "ElementaryTypeName",
                            "src": "11844:4:30"
                          }
                        ],
                        "id": 10777,
                        "name": "VariableDeclaration",
                        "src": "11844:17:30"
                      }
                    ],
                    "id": 10778,
                    "name": "VariableDeclarationStatement",
                    "src": "11844:17:30"
                  },
                  {
                    "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,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10756,
                              "type": "uint256",
                              "value": "periodsFromStartingBlock"
                            },
                            "id": 10779,
                            "name": "Identifier",
                            "src": "11875:24:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "numOfAgreedPeriods",
                              "referencedDeclaration": 10074,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10750,
                                  "type": "struct VestingScheme.Agreement memory",
                                  "value": "agreement"
                                },
                                "id": 10780,
                                "name": "Identifier",
                                "src": "11903:9:30"
                              }
                            ],
                            "id": 10781,
                            "name": "MemberAccess",
                            "src": "11903:28:30"
                          }
                        ],
                        "id": 10782,
                        "name": "BinaryOperation",
                        "src": "11875:56:30"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10777,
                                      "type": "uint256",
                                      "value": "periodsToPay"
                                    },
                                    "id": 10783,
                                    "name": "Identifier",
                                    "src": "11947:12:30"
                                  },
                                  {
                                    "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_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "sub",
                                          "referencedDeclaration": 11340,
                                          "type": "function (uint256,uint256) pure returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "numOfAgreedPeriods",
                                              "referencedDeclaration": 10074,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10750,
                                                  "type": "struct VestingScheme.Agreement memory",
                                                  "value": "agreement"
                                                },
                                                "id": 10784,
                                                "name": "Identifier",
                                                "src": "11962:9:30"
                                              }
                                            ],
                                            "id": 10785,
                                            "name": "MemberAccess",
                                            "src": "11962:28:30"
                                          }
                                        ],
                                        "id": 10786,
                                        "name": "MemberAccess",
                                        "src": "11962:32:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "collectedPeriods",
                                          "referencedDeclaration": 10080,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10750,
                                              "type": "struct VestingScheme.Agreement memory",
                                              "value": "agreement"
                                            },
                                            "id": 10787,
                                            "name": "Identifier",
                                            "src": "11995:9:30"
                                          }
                                        ],
                                        "id": 10788,
                                        "name": "MemberAccess",
                                        "src": "11995:26:30"
                                      }
                                    ],
                                    "id": 10789,
                                    "name": "FunctionCall",
                                    "src": "11962:60:30"
                                  }
                                ],
                                "id": 10790,
                                "name": "Assignment",
                                "src": "11947:75:30"
                              }
                            ],
                            "id": 10791,
                            "name": "ExpressionStatement",
                            "src": "11947:75:30"
                          }
                        ],
                        "id": 10792,
                        "name": "Block",
                        "src": "11933:100:30"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10777,
                                      "type": "uint256",
                                      "value": "periodsToPay"
                                    },
                                    "id": 10793,
                                    "name": "Identifier",
                                    "src": "12053:12:30"
                                  },
                                  {
                                    "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_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "sub",
                                          "referencedDeclaration": 11340,
                                          "type": "function (uint256,uint256) pure returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10756,
                                              "type": "uint256",
                                              "value": "periodsFromStartingBlock"
                                            },
                                            "id": 10794,
                                            "name": "Identifier",
                                            "src": "12068:24:30"
                                          }
                                        ],
                                        "id": 10795,
                                        "name": "MemberAccess",
                                        "src": "12068:28:30"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "collectedPeriods",
                                          "referencedDeclaration": 10080,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10750,
                                              "type": "struct VestingScheme.Agreement memory",
                                              "value": "agreement"
                                            },
                                            "id": 10796,
                                            "name": "Identifier",
                                            "src": "12097:9:30"
                                          }
                                        ],
                                        "id": 10797,
                                        "name": "MemberAccess",
                                        "src": "12097:26:30"
                                      }
                                    ],
                                    "id": 10798,
                                    "name": "FunctionCall",
                                    "src": "12068:56:30"
                                  }
                                ],
                                "id": 10799,
                                "name": "Assignment",
                                "src": "12053:71:30"
                              }
                            ],
                            "id": 10800,
                            "name": "ExpressionStatement",
                            "src": "12053:71:30"
                          }
                        ],
                        "id": 10801,
                        "name": "Block",
                        "src": "12039:96:30"
                      }
                    ],
                    "id": 10802,
                    "name": "IfStatement",
                    "src": "11871:264:30"
                  },
                  {
                    "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": "collectedPeriods",
                              "referencedDeclaration": 10080,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10110,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 10803,
                                    "name": "Identifier",
                                    "src": "12176:10:30"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10743,
                                      "type": "uint256",
                                      "value": "_agreementId"
                                    },
                                    "id": 10804,
                                    "name": "Identifier",
                                    "src": "12187:12:30"
                                  }
                                ],
                                "id": 10805,
                                "name": "IndexAccess",
                                "src": "12176:24:30"
                              }
                            ],
                            "id": 10806,
                            "name": "MemberAccess",
                            "src": "12176:41:30"
                          },
                          {
                            "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_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "add",
                                  "referencedDeclaration": 11364,
                                  "type": "function (uint256,uint256) pure returns (uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "collectedPeriods",
                                      "referencedDeclaration": 10080,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct VestingScheme.Agreement storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10110,
                                              "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                              "value": "agreements"
                                            },
                                            "id": 10807,
                                            "name": "Identifier",
                                            "src": "12220:10:30"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10743,
                                              "type": "uint256",
                                              "value": "_agreementId"
                                            },
                                            "id": 10808,
                                            "name": "Identifier",
                                            "src": "12231:12:30"
                                          }
                                        ],
                                        "id": 10809,
                                        "name": "IndexAccess",
                                        "src": "12220:24:30"
                                      }
                                    ],
                                    "id": 10810,
                                    "name": "MemberAccess",
                                    "src": "12220:41:30"
                                  }
                                ],
                                "id": 10811,
                                "name": "MemberAccess",
                                "src": "12220:45:30"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10777,
                                  "type": "uint256",
                                  "value": "periodsToPay"
                                },
                                "id": 10812,
                                "name": "Identifier",
                                "src": "12266:12:30"
                              }
                            ],
                            "id": 10813,
                            "name": "FunctionCall",
                            "src": "12220:59:30"
                          }
                        ],
                        "id": 10814,
                        "name": "Assignment",
                        "src": "12176:103:30"
                      }
                    ],
                    "id": 10815,
                    "name": "ExpressionStatement",
                    "src": "12176:103:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        10817
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "tokensToTransfer",
                          "scope": 10839,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 10816,
                            "name": "ElementaryTypeName",
                            "src": "12311:4:30"
                          }
                        ],
                        "id": 10817,
                        "name": "VariableDeclaration",
                        "src": "12311:21:30"
                      },
                      {
                        "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_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "mul",
                              "referencedDeclaration": 11302,
                              "type": "function (uint256,uint256) pure returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10777,
                                  "type": "uint256",
                                  "value": "periodsToPay"
                                },
                                "id": 10818,
                                "name": "Identifier",
                                "src": "12335:12:30"
                              }
                            ],
                            "id": 10819,
                            "name": "MemberAccess",
                            "src": "12335:16:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "amountPerPeriod",
                              "referencedDeclaration": 10070,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10750,
                                  "type": "struct VestingScheme.Agreement memory",
                                  "value": "agreement"
                                },
                                "id": 10820,
                                "name": "Identifier",
                                "src": "12352:9:30"
                              }
                            ],
                            "id": 10821,
                            "name": "MemberAccess",
                            "src": "12352:25:30"
                          }
                        ],
                        "id": 10822,
                        "name": "FunctionCall",
                        "src": "12335:43:30"
                      }
                    ],
                    "id": 10823,
                    "name": "VariableDeclarationStatement",
                    "src": "12311:67:30"
                  },
                  {
                    "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": "transfer",
                              "referencedDeclaration": 11518,
                              "type": "function (address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "token",
                                  "referencedDeclaration": 10062,
                                  "type": "contract StandardToken"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10750,
                                      "type": "struct VestingScheme.Agreement memory",
                                      "value": "agreement"
                                    },
                                    "id": 10824,
                                    "name": "Identifier",
                                    "src": "12388:9:30"
                                  }
                                ],
                                "id": 10827,
                                "name": "MemberAccess",
                                "src": "12388:15:30"
                              }
                            ],
                            "id": 10828,
                            "name": "MemberAccess",
                            "src": "12388:24:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "beneficiary",
                              "referencedDeclaration": 10064,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10750,
                                  "type": "struct VestingScheme.Agreement memory",
                                  "value": "agreement"
                                },
                                "id": 10829,
                                "name": "Identifier",
                                "src": "12413:9:30"
                              }
                            ],
                            "id": 10830,
                            "name": "MemberAccess",
                            "src": "12413:21:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10817,
                              "type": "uint256",
                              "value": "tokensToTransfer"
                            },
                            "id": 10831,
                            "name": "Identifier",
                            "src": "12436:16:30"
                          }
                        ],
                        "id": 10832,
                        "name": "FunctionCall",
                        "src": "12388:65:30"
                      }
                    ],
                    "id": 10833,
                    "name": "ExpressionStatement",
                    "src": "12388:65:30"
                  },
                  {
                    "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_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10060,
                              "type": "function (uint256)",
                              "value": "Collect"
                            },
                            "id": 10834,
                            "name": "Identifier",
                            "src": "12491:7:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10743,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 10835,
                            "name": "Identifier",
                            "src": "12499:12:30"
                          }
                        ],
                        "id": 10836,
                        "name": "FunctionCall",
                        "src": "12491:21:30"
                      }
                    ],
                    "id": 10837,
                    "name": "ExpressionStatement",
                    "src": "12491:21:30"
                  }
                ],
                "id": 10838,
                "name": "Block",
                "src": "11552:967:30"
              }
            ],
            "id": 10839,
            "name": "FunctionDefinition",
            "src": "11479:1040:30"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "cancelAgreement",
              "payable": false,
              "scope": 10888,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_agreementId",
                      "scope": 10887,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 10840,
                        "name": "ElementaryTypeName",
                        "src": "12669:4:30"
                      }
                    ],
                    "id": 10841,
                    "name": "VariableDeclaration",
                    "src": "12669:17:30"
                  }
                ],
                "id": 10842,
                "name": "ParameterList",
                "src": "12668:19:30"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 10843,
                "name": "ParameterList",
                "src": "12697:0:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        10845
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "agreement",
                          "scope": 10887,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct VestingScheme.Agreement memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Agreement",
                              "referencedDeclaration": 10091,
                              "type": "struct VestingScheme.Agreement storage pointer"
                            },
                            "id": 10844,
                            "name": "UserDefinedTypeName",
                            "src": "12707:9:30"
                          }
                        ],
                        "id": 10845,
                        "name": "VariableDeclaration",
                        "src": "12707:26:30"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct VestingScheme.Agreement storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10110,
                              "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                              "value": "agreements"
                            },
                            "id": 10846,
                            "name": "Identifier",
                            "src": "12736:10:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10841,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 10847,
                            "name": "Identifier",
                            "src": "12747:12:30"
                          }
                        ],
                        "id": 10848,
                        "name": "IndexAccess",
                        "src": "12736:24:30"
                      }
                    ],
                    "id": 10849,
                    "name": "VariableDeclarationStatement",
                    "src": "12707:53:30"
                  },
                  {
                    "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 VestingScheme.Agreement storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10110,
                                  "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                  "value": "agreements"
                                },
                                "id": 10850,
                                "name": "Identifier",
                                "src": "12778:10:30"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10841,
                                  "type": "uint256",
                                  "value": "_agreementId"
                                },
                                "id": 10851,
                                "name": "Identifier",
                                "src": "12789:12:30"
                              }
                            ],
                            "id": 10852,
                            "name": "IndexAccess",
                            "src": "12778:24:30"
                          }
                        ],
                        "id": 10853,
                        "name": "UnaryOperation",
                        "src": "12770:32:30"
                      }
                    ],
                    "id": 10854,
                    "name": "ExpressionStatement",
                    "src": "12770:32:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        10856
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "periodsLeft",
                          "scope": 10887,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 10855,
                            "name": "ElementaryTypeName",
                            "src": "12812:4:30"
                          }
                        ],
                        "id": 10856,
                        "name": "VariableDeclaration",
                        "src": "12812:16:30"
                      },
                      {
                        "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_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sub",
                              "referencedDeclaration": 11340,
                              "type": "function (uint256,uint256) pure returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "numOfAgreedPeriods",
                                  "referencedDeclaration": 10074,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10845,
                                      "type": "struct VestingScheme.Agreement memory",
                                      "value": "agreement"
                                    },
                                    "id": 10857,
                                    "name": "Identifier",
                                    "src": "12831:9:30"
                                  }
                                ],
                                "id": 10858,
                                "name": "MemberAccess",
                                "src": "12831:28:30"
                              }
                            ],
                            "id": 10859,
                            "name": "MemberAccess",
                            "src": "12831:32:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "collectedPeriods",
                              "referencedDeclaration": 10080,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10845,
                                  "type": "struct VestingScheme.Agreement memory",
                                  "value": "agreement"
                                },
                                "id": 10860,
                                "name": "Identifier",
                                "src": "12864:9:30"
                              }
                            ],
                            "id": 10861,
                            "name": "MemberAccess",
                            "src": "12864:26:30"
                          }
                        ],
                        "id": 10862,
                        "name": "FunctionCall",
                        "src": "12831:60:30"
                      }
                    ],
                    "id": 10863,
                    "name": "VariableDeclarationStatement",
                    "src": "12812:79:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        10865
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "tokensLeft",
                          "scope": 10887,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 10864,
                            "name": "ElementaryTypeName",
                            "src": "12901:4:30"
                          }
                        ],
                        "id": 10865,
                        "name": "VariableDeclaration",
                        "src": "12901:15:30"
                      },
                      {
                        "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_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "mul",
                              "referencedDeclaration": 11302,
                              "type": "function (uint256,uint256) pure returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10856,
                                  "type": "uint256",
                                  "value": "periodsLeft"
                                },
                                "id": 10866,
                                "name": "Identifier",
                                "src": "12919:11:30"
                              }
                            ],
                            "id": 10867,
                            "name": "MemberAccess",
                            "src": "12919:15:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "amountPerPeriod",
                              "referencedDeclaration": 10070,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10845,
                                  "type": "struct VestingScheme.Agreement memory",
                                  "value": "agreement"
                                },
                                "id": 10868,
                                "name": "Identifier",
                                "src": "12935:9:30"
                              }
                            ],
                            "id": 10869,
                            "name": "MemberAccess",
                            "src": "12935:25:30"
                          }
                        ],
                        "id": 10870,
                        "name": "FunctionCall",
                        "src": "12919:42:30"
                      }
                    ],
                    "id": 10871,
                    "name": "VariableDeclarationStatement",
                    "src": "12901:60:30"
                  },
                  {
                    "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": "transfer",
                              "referencedDeclaration": 11518,
                              "type": "function (address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "token",
                                  "referencedDeclaration": 10062,
                                  "type": "contract StandardToken"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10845,
                                      "type": "struct VestingScheme.Agreement memory",
                                      "value": "agreement"
                                    },
                                    "id": 10872,
                                    "name": "Identifier",
                                    "src": "12971:9:30"
                                  }
                                ],
                                "id": 10875,
                                "name": "MemberAccess",
                                "src": "12971:15:30"
                              }
                            ],
                            "id": 10876,
                            "name": "MemberAccess",
                            "src": "12971:24:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "returnOnCancelAddress",
                              "referencedDeclaration": 10066,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10845,
                                  "type": "struct VestingScheme.Agreement memory",
                                  "value": "agreement"
                                },
                                "id": 10877,
                                "name": "Identifier",
                                "src": "12996:9:30"
                              }
                            ],
                            "id": 10878,
                            "name": "MemberAccess",
                            "src": "12996:31:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10865,
                              "type": "uint256",
                              "value": "tokensLeft"
                            },
                            "id": 10879,
                            "name": "Identifier",
                            "src": "13029:10:30"
                          }
                        ],
                        "id": 10880,
                        "name": "FunctionCall",
                        "src": "12971:69:30"
                      }
                    ],
                    "id": 10881,
                    "name": "ExpressionStatement",
                    "src": "12971:69:30"
                  },
                  {
                    "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_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10056,
                              "type": "function (uint256)",
                              "value": "AgreementCancel"
                            },
                            "id": 10882,
                            "name": "Identifier",
                            "src": "13086:15:30"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10841,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 10883,
                            "name": "Identifier",
                            "src": "13102:12:30"
                          }
                        ],
                        "id": 10884,
                        "name": "FunctionCall",
                        "src": "13086:29:30"
                      }
                    ],
                    "id": 10885,
                    "name": "ExpressionStatement",
                    "src": "13086:29:30"
                  }
                ],
                "id": 10886,
                "name": "Block",
                "src": "12697:425:30"
              }
            ],
            "id": 10887,
            "name": "FunctionDefinition",
            "src": "12644:478:30"
          }
        ],
        "id": 10888,
        "name": "ContractDefinition",
        "src": "220:12904:30"
      }
    ],
    "id": 10889,
    "name": "SourceUnit",
    "src": "0:13125:30"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-02-04T21:57:39.067Z"
}