{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addReward","inputs":[{"name":"nodes","type":"address[]","internalType":"address[]"},{"name":"ethAmount","type":"uint256","internalType":"uint256"},{"name":"arpaAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getBelongingGroup","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"int256","internalType":"int256"},{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"getGroup","inputs":[{"name":"groupIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IControllerOracle.Group","components":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"size","type":"uint256","internalType":"uint256"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"members","type":"tuple[]","internalType":"struct IControllerOracle.Member[]","components":[{"name":"nodeIdAddress","type":"address","internalType":"address"},{"name":"partialPublicKey","type":"uint256[4]","internalType":"uint256[4]"}]},{"name":"committers","type":"address[]","internalType":"address[]"},{"name":"commitCacheList","type":"tuple[]","internalType":"struct IControllerOracle.CommitCache[]","components":[{"name":"nodeIdAddress","type":"address[]","internalType":"address[]"},{"name":"commitResult","type":"tuple","internalType":"struct IControllerOracle.CommitResult","components":[{"name":"groupEpoch","type":"uint256","internalType":"uint256"},{"name":"publicKey","type":"uint256[4]","internalType":"uint256[4]"},{"name":"disqualifiedNodes","type":"address[]","internalType":"address[]"}]}]},{"name":"isStrictlyMajorityConsensusReached","type":"bool","internalType":"bool"},{"name":"publicKey","type":"uint256[4]","internalType":"uint256[4]"}]}],"stateMutability":"view"},{"type":"function","name":"getGroupCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getGroupEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getGroupThreshold","inputs":[{"name":"groupIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastOutput","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMember","inputs":[{"name":"groupIndex","type":"uint256","internalType":"uint256"},{"name":"memberIndex","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IControllerOracle.Member","components":[{"name":"nodeIdAddress","type":"address","internalType":"address"},{"name":"partialPublicKey","type":"uint256[4]","internalType":"uint256[4]"}]}],"stateMutability":"view"},{"type":"function","name":"getNodeWithdrawableTokens","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getValidGroupIndices","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"arpa","type":"address","internalType":"address"},{"name":"l2CrossDomainMessenger","type":"address","internalType":"address"},{"name":"lastOutput","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nodeWithdraw","inputs":[{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAdapterContractAddress","inputs":[{"name":"adapterContractAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setChainMessenger","inputs":[{"name":"chainMessenger","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setL2CrossDomainMessenger","inputs":[{"name":"l2CrossDomainMessenger","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLastOutput","inputs":[{"name":"lastOutput","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateGroup","inputs":[{"name":"committer","type":"address","internalType":"address"},{"name":"group","type":"tuple","internalType":"struct IControllerOracle.Group","components":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"size","type":"uint256","internalType":"uint256"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"members","type":"tuple[]","internalType":"struct IControllerOracle.Member[]","components":[{"name":"nodeIdAddress","type":"address","internalType":"address"},{"name":"partialPublicKey","type":"uint256[4]","internalType":"uint256[4]"}]},{"name":"committers","type":"address[]","internalType":"address[]"},{"name":"commitCacheList","type":"tuple[]","internalType":"struct IControllerOracle.CommitCache[]","components":[{"name":"nodeIdAddress","type":"address[]","internalType":"address[]"},{"name":"commitResult","type":"tuple","internalType":"struct IControllerOracle.CommitResult","components":[{"name":"groupEpoch","type":"uint256","internalType":"uint256"},{"name":"publicKey","type":"uint256[4]","internalType":"uint256[4]"},{"name":"disqualifiedNodes","type":"address[]","internalType":"address[]"}]}]},{"name":"isStrictlyMajorityConsensusReached","type":"bool","internalType":"bool"},{"name":"publicKey","type":"uint256[4]","internalType":"uint256[4]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"GroupUpdated","inputs":[{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"groupIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"groupEpoch","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"committer","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"NodeRewarded","inputs":[{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"},{"name":"ethAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"arpaAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"GroupObsolete","inputs":[{"name":"groupIndex","type":"uint256","internalType":"uint256"},{"name":"relayedGroupEpoch","type":"uint256","internalType":"uint256"},{"name":"currentGroupEpoch","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidZeroAddress","inputs":[]},{"type":"error","name":"SenderNotAdapter","inputs":[]},{"type":"error","name":"SenderNotChainMessenger","inputs":[]}],"bytecode":{"object":"0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051612fef6200011f6000396000818161066c015281816106ac01528181610bc801528181610c080152610c9b0152612fef6000f3fe6080604052600436106101705760003560e01c806351a2b9a0116100d6578063914eb34d1161007f578063f2fde38b11610059578063f2fde38b146103fb578063f3df08021461041b578063f49e0ba91461043b57600080fd5b8063914eb34d1461038c578063b330a0fd146103ac578063ceb60654146103ce57600080fd5b8063715018a6116100b0578063715018a61461033a5780637ee49cfd1461034f5780638da5cb5b1461036457600080fd5b806351a2b9a0146102f057806352d1902d1461030557806353d615f81461031a57600080fd5b80634897a730116101385780634d79a893116101125780634d79a893146102905780634ecea80d146102bd5780634f1ef286146102dd57600080fd5b80634897a7301461023057806349b08896146102505780634bc4447b1461027057600080fd5b806306545a93146101755780631794bb3c14610199578063227d0f46146101bb5780633659cfe6146101f05780633b6c00b014610210575b600080fd5b34801561018157600080fd5b5060d0545b6040519081526020015b60405180910390f35b3480156101a557600080fd5b506101b96101b43660046124c0565b610473565b005b3480156101c757600080fd5b506101db6101d6366004612501565b6105c1565b60408051928352602083019190915201610190565b3480156101fc57600080fd5b506101b961020b366004612501565b610662565b34801561021c57600080fd5b506101db61022b366004612501565b610741565b34801561023c57600080fd5b506101b961024b366004612501565b610792565b34801561025c57600080fd5b506101b961026b3660046128c4565b6107e3565b34801561027c57600080fd5b506101b961028b366004612501565b6109b1565b34801561029c57600080fd5b506102b06102ab3660046129dd565b610a02565b6040516101909190612a41565b3480156102c957600080fd5b506101b96102d8366004612501565b610a99565b6101b96102eb366004612a4f565b610bbe565b3480156102fc57600080fd5b5060d554610186565b34801561031157600080fd5b50610186610c8e565b34801561032657600080fd5b506101b9610335366004612501565b610d41565b34801561034657600080fd5b506101b9610d92565b34801561035b57600080fd5b5060cf54610186565b34801561037057600080fd5b506097546040516001600160a01b039091168152602001610190565b34801561039857600080fd5b506101b96103a7366004612af7565b610da6565b3480156103b857600080fd5b506103c1610efe565b6040516101909190612b45565b3480156103da57600080fd5b506103ee6103e9366004612b89565b6112b7565b6040516101909190612cb1565b34801561040757600080fd5b506101b9610416366004612501565b6115c6565b34801561042757600080fd5b506101b9610436366004612b89565b61163c565b34801561044757600080fd5b506101db610456366004612b89565b600090815260d16020526040902060038101546002909101549091565b600054610100900460ff16158080156104935750600054600160ff909116105b806104ad5750303b1580156104ad575060005460ff166001145b6105155760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610538576000805461ff0019166101001790555b60c980546001600160a01b038087166001600160a01b03199283161790925560cb80549286169290911691909117905560d582905561057561166c565b80156105bb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6001600160a01b038116600090815260cd602052604081205481901561060b576001600160a01b038316600090815260cd602052604090205461060690600190612d74565b61060e565b60005b6001600160a01b038416600090815260ce602052604090205415610656576001600160a01b038416600090815260ce602052604090205461065190600190612d74565b610659565b60005b91509150915091565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106aa5760405162461bcd60e51b815260040161050c90612d87565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106f3600080516020612f73833981519152546001600160a01b031690565b6001600160a01b0316146107195760405162461bcd60e51b815260040161050c90612dd3565b6107228161169b565b6040805160008082526020820190925261073e918391906116a3565b50565b60008060005b60d05481101561078557600061075d828661180e565b90508060001914610772579094909350915050565b508061077d81612e1f565b915050610747565b5060001993849350915050565b61079a611b82565b6001600160a01b0381166107c15760405163f6b2911f60e01b815260040160405180910390fd5b60cc80546001600160a01b0319166001600160a01b0392909216919091179055565b6097546001600160a01b0316331480159061088f575060cb546001600160a01b03163314158061088f575060ca5460cb5460408051636e296e4560e01b815290516001600160a01b039384169390921691636e296e45916004808201926020929091908290030181865afa15801561085f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108839190612e38565b6001600160a01b031614155b156108ad57604051630ba6b4d160e31b815260040160405180910390fd5b8051600081815260d16020908152604090912060010154908301511161091257602082810151600083815260d190925260409182902060010154915163699745e360e01b8152600481018490526024810191909152604481019190915260640161050c565b60cf805490600061092283612e1f565b9091555050600081815260d1602052604081206001015490036109555760d0805490600061094f83612e1f565b91905055505b61095e82611bdc565b826001600160a01b03168260200151827f086df69ece965de938d49c9d0eca0f14e39b9d5b178e0358d27ef0fdde2672f860cf600001546040516109a491815260200190565b60405180910390a4505050565b6109b9611b82565b6001600160a01b0381166109e05760405163f6b2911f60e01b815260040160405180910390fd5b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b610a0a612314565b600083815260d160205260409020600401805483908110610a2d57610a2d612e55565b6000918252602091829020604080518082018252600590930290910180546001600160a01b0316835281516080810190925291928301906001830160048282826020028201915b815481526020019060010190808311610a745750505050508152505090505b92915050565b6001600160a01b038116610ac05760405163f6b2911f60e01b815260040160405180910390fd5b33600090815260cd602090815260408083205460ce909252909120546001811115610b1d5733600090815260ce60205260409020600190819055610b1d908490610b0a9084612d74565b60c9546001600160a01b03169190611d91565b6001821115610bb95733600090815260cd6020526040902060019081905560cc546001600160a01b031690630ad98f6a908590610b5a9086612d74565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610ba057600080fd5b505af1158015610bb4573d6000803e3d6000fd5b505050505b505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c065760405162461bcd60e51b815260040161050c90612d87565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c4f600080516020612f73833981519152546001600160a01b031690565b6001600160a01b031614610c755760405162461bcd60e51b815260040161050c90612dd3565b610c7e8261169b565b610c8a828260016116a3565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d2e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161050c565b50600080516020612f7383398151915290565b610d49611b82565b6001600160a01b038116610d705760405163f6b2911f60e01b815260040160405180910390fd5b60ca80546001600160a01b0319166001600160a01b0392909216919091179055565b610d9a611b82565b610da46000611de3565b565b60cc546001600160a01b03163314610dd15760405163469666c560e01b815260040160405180910390fd5b60005b83518110156105bb578260cd6000868481518110610df457610df4612e55565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254610e2b9190612e6b565b925050819055508160ce6000868481518110610e4957610e49612e55565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254610e809190612e6b565b92505081905550838181518110610e9957610e99612e55565b60200260200101516001600160a01b03167f8353a804115421789f3ab2eeb3f5215943906ce12100c91d40fc865caf742b6f8484604051610ee4929190918252602082015260400190565b60405180910390a280610ef681612e1f565b915050610dd4565b6060600060cf6001015467ffffffffffffffff811115610f2057610f2061251e565b604051908082528060200260200182016040528015610f49578160200160208202803683370190505b5090506000805b60d0548110156112a557600081815260d1602090815260408083208151610120810183528154815260018201548185015260028201548184015260038201546060820152600482018054845181870281018701909552808552919492936080860193909290879084015b828210156110335760008481526020908190206040805180820182526005860290920180546001600160a01b0316835281516080810190925291928301906001830160048282826020028201915b8154815260200190600101908083116110085750505050508152505081526020019060010190610fba565b5050505081526020016005820180548060200260200160405190810160405280929190818152602001828054801561109457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611076575b5050505050815260200160068201805480602002602001604051908101604052809291908181526020016000905b8282101561120b57838290600052602060002090600702016040518060400160405290816000820180548060200260200160405190810160405280929190818152602001828054801561113e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611120575b50505091835250506040805160608101825260018401805482528251608081019384905260209485019492939192840191600287019060049082845b81548152602001906001019080831161117a5750505050508152602001600582018054806020026020016040519081016040528092919081815260200182805480156111ef57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111d1575b50505050508152505081525050815260200190600101906110c2565b50505090825250600782015460ff1615156020820152604080516080810182529101906008830160048282826020028201915b81548152602001906001019080831161123e5750505050508152505090508060e0015115611292578184848151811061127957611279612e55565b60209081029190910101528261128e81612e1f565b9350505b508061129d81612e1f565b915050610f50565b506112b08282611e35565b9250505090565b6112bf61233c565b600082815260d1602090815260408083208151610120810183528154815260018201548185015260028201548184015260038201546060820152600482018054845181870281018701909552808552919592946080870194939192919084015b828210156113985760008481526020908190206040805180820182526005860290920180546001600160a01b0316835281516080810190925291928301906001830160048282826020028201915b81548152602001906001019080831161136d575050505050815250508152602001906001019061131f565b505050508152602001600582018054806020026020016040519081016040528092919081815260200182805480156113f957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113db575b5050505050815260200160068201805480602002602001604051908101604052809291908181526020016000905b828210156115705783829060005260206000209060070201604051806040016040529081600082018054806020026020016040519081016040528092919081815260200182805480156114a357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611485575b50505091835250506040805160608101825260018401805482528251608081019384905260209485019492939192840191600287019060049082845b8154815260200190600101908083116114df57505050505081526020016005820180548060200260200160405190810160405280929190818152602001828054801561155457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611536575b5050505050815250508152505081526020019060010190611427565b50505090825250600782015460ff1615156020820152604080516080810182529101906008830160048282826020028201915b8154815260200190600101908083116115a3575050505050815250509050919050565b6115ce611b82565b6001600160a01b0381166116335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161050c565b61073e81611de3565b60cc546001600160a01b031633146116675760405163469666c560e01b815260040160405180910390fd5b60d555565b600054610100900460ff166116935760405162461bcd60e51b815260040161050c90612e7e565b610da4611eda565b61073e611b82565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116d657610bb983611f0a565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611730575060408051601f3d908101601f1916820190925261172d91810190612ec9565b60015b6117935760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161050c565b600080516020612f7383398151915281146118025760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161050c565b50610bb9838383611fa6565b600082815260d160209081526040808320815161012081018352815481526001820154818501526002820154818401526003820154606082015260048201805484518187028101870190955280855286959294608086019390929190879084015b828210156118e85760008481526020908190206040805180820182526005860290920180546001600160a01b0316835281516080810190925291928301906001830160048282826020028201915b8154815260200190600101908083116118bd575050505050815250508152602001906001019061186f565b5050505081526020016005820180548060200260200160405190810160405280929190818152602001828054801561194957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161192b575b5050505050815260200160068201805480602002602001604051908101604052809291908181526020016000905b82821015611ac05783829060005260206000209060070201604051806040016040529081600082018054806020026020016040519081016040528092919081815260200182805480156119f357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119d5575b50505091835250506040805160608101825260018401805482528251608081019384905260209485019492939192840191600287019060049082845b815481526020019060010190808311611a2f575050505050815260200160058201805480602002602001604051908101604052809291908181526020018280548015611aa457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a86575b5050505050815250508152505081526020019060010190611977565b50505090825250600782015460ff1615156020820152604080516080810182529101906008830160048282826020028201915b815481526020019060010190808311611af357505050505081525050905060005b816080015151811015611b7657836001600160a01b031682608001518281518110611b4157611b41612e55565b6020026020010151600001516001600160a01b031603611b64579150610a939050565b80611b6e81612e1f565b915050611b14565b50600019949350505050565b6097546001600160a01b03163314610da45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161050c565b8051600090815260d1602090815260408083208451815591840151600183015560608401516003830155830151600282015560e083015160078201805460ff191691151591909117905590611c3590600483019061238a565b60005b8260400151811015611d5e57600083608001518281518110611c5c57611c5c612e55565b60200260200101516000015190508260040184608001518381518110611c8457611c84612e55565b602090810291909101810151825460018082018555600094855293839020825160059092020180546001600160a01b0319166001600160a01b03909216919091178155918101519092611cdc919083019060046123ab565b5050506001600160a01b038116600090815260cd6020526040902054158015611d1b57506001600160a01b038116600090815260ce6020526040902054155b15611d4b576001600160a01b038116600090815260cd6020908152604080832060019081905560ce909252909120555b5080611d5681612e1f565b915050611c38565b5060a08201518051611d7a9160058401916020909101906123e9565b50610100820151610bb990600883019060046123ab565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610bb9908490611fcb565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606060008267ffffffffffffffff811115611e5257611e5261251e565b604051908082528060200260200182016040528015611e7b578160200160208202803683370190505b50905060005b83811015611ed257848181518110611e9b57611e9b612e55565b6020026020010151828281518110611eb557611eb5612e55565b602090810291909101015280611eca81612e1f565b915050611e81565b509392505050565b600054610100900460ff16611f015760405162461bcd60e51b815260040161050c90612e7e565b610da433611de3565b6001600160a01b0381163b611f775760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161050c565b600080516020612f7383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611faf836120a0565b600082511180611fbc5750805b15610bb9576105bb83836120e0565b6000612020826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661210c9092919063ffffffff16565b90508051600014806120415750808060200190518101906120419190612ee2565b610bb95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161050c565b6120a981611f0a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606121058383604051806060016040528060278152602001612f9360279139612123565b9392505050565b606061211b848460008561219b565b949350505050565b6060600080856001600160a01b0316856040516121409190612f23565b600060405180830381855af49150503d806000811461217b576040519150601f19603f3d011682016040523d82523d6000602084013e612180565b606091505b509150915061219186838387612276565b9695505050505050565b6060824710156121fc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161050c565b600080866001600160a01b031685876040516122189190612f23565b60006040518083038185875af1925050503d8060008114612255576040519150601f19603f3d011682016040523d82523d6000602084013e61225a565b606091505b509150915061226b87838387612276565b979650505050505050565b606083156122e55782516000036122de576001600160a01b0385163b6122de5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161050c565b508161211b565b61211b83838151156122fa5781518083602001fd5b8060405162461bcd60e51b815260040161050c9190612f3f565b604051806040016040528060006001600160a01b0316815260200161233761243e565b905290565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160608152602001606081526020016060815260200160001515815260200161233761243e565b508054600082556005029060005260206000209081019061073e919061245c565b82600481019282156123d9579160200282015b828111156123d95782518255916020019190600101906123be565b506123e5929150612496565b5090565b8280548282559060005260206000209081019282156123d9579160200282015b828111156123d957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612409565b60405180608001604052806004906020820280368337509192915050565b808211156123e55780546001600160a01b03191681556000600182018190556002820181905560038201819055600482015560050161245c565b5b808211156123e55760008155600101612497565b6001600160a01b038116811461073e57600080fd5b6000806000606084860312156124d557600080fd5b83356124e0816124ab565b925060208401356124f0816124ab565b929592945050506040919091013590565b60006020828403121561251357600080fd5b8135612105816124ab565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156125575761255761251e565b60405290565b6040516060810167ffffffffffffffff811182821017156125575761255761251e565b604051610120810167ffffffffffffffff811182821017156125575761255761251e565b604051601f8201601f1916810167ffffffffffffffff811182821017156125cd576125cd61251e565b604052919050565b600067ffffffffffffffff8211156125ef576125ef61251e565b5060051b60200190565b600082601f83011261260a57600080fd5b6040516080810181811067ffffffffffffffff8211171561262d5761262d61251e565b60405280608084018581111561264257600080fd5b845b8181101561265c578035835260209283019201612644565b509195945050505050565b600082601f83011261267857600080fd5b8135602061268d612688836125d5565b6125a4565b82815260a092830285018201928282019190878511156126ac57600080fd5b8387015b858110156126fa5781818a0312156126c85760008081fd5b6126d0612534565b81356126db816124ab565b81526126e98a8388016125f9565b8187015284529284019281016126b0565b5090979650505050505050565b600082601f83011261271857600080fd5b81356020612728612688836125d5565b82815260059290921b8401810191818101908684111561274757600080fd5b8286015b8481101561276b57803561275e816124ab565b835291830191830161274b565b509695505050505050565b600082601f83011261278757600080fd5b81356020612797612688836125d5565b82815260059290921b840181019181810190868411156127b657600080fd5b8286015b8481101561276b57803567ffffffffffffffff808211156127da57600080fd5b908801906040601f19838c0381018213156127f457600080fd5b6127fc612534565b888501358481111561280d57600080fd5b61281b8e8b83890101612707565b825250828501358481111561282f57600080fd5b949094019360c0858e03830112156128475760008081fd5b61284f61255d565b91508885013582526128638d8487016125f9565b8983015260c08501358481111561287a5760008081fd5b6128888e8b83890101612707565b938301939093528089019190915286525050509183019183016127ba565b801515811461073e57600080fd5b80356128bf816128a6565b919050565b600080604083850312156128d757600080fd5b82356128e2816124ab565b9150602083013567ffffffffffffffff808211156128ff57600080fd5b90840190610180828703121561291457600080fd5b61291c612580565b8235815260208301356020820152604083013560408201526060830135606082015260808301358281111561295057600080fd5b61295c88828601612667565b60808301525060a08301358281111561297457600080fd5b61298088828601612707565b60a08301525060c08301358281111561299857600080fd5b6129a488828601612776565b60c0830152506129b660e084016128b4565b60e082015261010091506129cc878385016125f9565b828201528093505050509250929050565b600080604083850312156129f057600080fd5b50508035926020909101359150565b8060005b60048110156105bb578151845260209384019390910190600101612a03565b6001600160a01b0381511682526020810151610bb960208401826129ff565b60a08101610a938284612a22565b60008060408385031215612a6257600080fd5b8235612a6d816124ab565b915060208381013567ffffffffffffffff80821115612a8b57600080fd5b818601915086601f830112612a9f57600080fd5b813581811115612ab157612ab161251e565b612ac3601f8201601f191685016125a4565b91508082528784828501011115612ad957600080fd5b80848401858401376000848284010152508093505050509250929050565b600080600060608486031215612b0c57600080fd5b833567ffffffffffffffff811115612b2357600080fd5b612b2f86828701612707565b9660208601359650604090950135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015612b7d57835183529284019291840191600101612b61565b50909695505050505050565b600060208284031215612b9b57600080fd5b5035919050565b600081518084526020808501945080840160005b83811015612bdc57612bc9878351612a22565b60a0969096019590820190600101612bb6565b509495945050505050565b600081518084526020808501945080840160005b83811015612bdc5781516001600160a01b031687529582019590820190600101612bfb565b6000815180845260208085019450848260051b860182860160005b858110156126fa578383038952815160408151818652612c5d82870182612be7565b90508783015192508581038887015260c08351825288840151612c828a8401826129ff565b508284015193508060a0830152612c9b81830185612be7565b9c89019c96505050928601925050600101612c3b565b60208152815160208201526020820151604082015260408201516060820152606082015160808201526000608083015161018060a0840152612cf76101a0840182612ba2565b905060a0840151601f19808584030160c0860152612d158383612be7565b925060c08601519150808584030160e086015250612d338282612c20565b91505060e0840151610100612d4b8186018315159052565b8501519050611ed26101208501826129ff565b634e487b7160e01b600052601160045260246000fd5b81810381811115610a9357610a93612d5e565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060018201612e3157612e31612d5e565b5060010190565b600060208284031215612e4a57600080fd5b8151612105816124ab565b634e487b7160e01b600052603260045260246000fd5b80820180821115610a9357610a93612d5e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600060208284031215612edb57600080fd5b5051919050565b600060208284031215612ef457600080fd5b8151612105816128a6565b60005b83811015612f1a578181015183820152602001612f02565b50506000910152565b60008251612f35818460208701612eff565b9190910192915050565b6020815260008251806020840152612f5e816040850160208701612eff565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122099d284ae423d811c2b95a9b2d2f6841fe3d9dd4af16fe665311a4c830a99a1f164736f6c63430008120033","sourceMap":"667:8701:70:-:0;;;1198:4:37;1155:48;;2183:53:70;;;;;;;;;-1:-1:-1;2207:22:70;:20;:22::i;:::-;667:8701;;5939:280:36;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:36;;216:2:104;5998:66:36;;;198:21:104;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:104;;;338:37;392:19;;5998:66:36;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:36;6140:15;6125:30;;;;;;6174:28;;564:36:104;;;6174:28:36;;552:2:104;537:18;6174:28:36;;;;;;;6074:139;5939:280::o;422:184:104:-;667:8701:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101705760003560e01c806351a2b9a0116100d6578063914eb34d1161007f578063f2fde38b11610059578063f2fde38b146103fb578063f3df08021461041b578063f49e0ba91461043b57600080fd5b8063914eb34d1461038c578063b330a0fd146103ac578063ceb60654146103ce57600080fd5b8063715018a6116100b0578063715018a61461033a5780637ee49cfd1461034f5780638da5cb5b1461036457600080fd5b806351a2b9a0146102f057806352d1902d1461030557806353d615f81461031a57600080fd5b80634897a730116101385780634d79a893116101125780634d79a893146102905780634ecea80d146102bd5780634f1ef286146102dd57600080fd5b80634897a7301461023057806349b08896146102505780634bc4447b1461027057600080fd5b806306545a93146101755780631794bb3c14610199578063227d0f46146101bb5780633659cfe6146101f05780633b6c00b014610210575b600080fd5b34801561018157600080fd5b5060d0545b6040519081526020015b60405180910390f35b3480156101a557600080fd5b506101b96101b43660046124c0565b610473565b005b3480156101c757600080fd5b506101db6101d6366004612501565b6105c1565b60408051928352602083019190915201610190565b3480156101fc57600080fd5b506101b961020b366004612501565b610662565b34801561021c57600080fd5b506101db61022b366004612501565b610741565b34801561023c57600080fd5b506101b961024b366004612501565b610792565b34801561025c57600080fd5b506101b961026b3660046128c4565b6107e3565b34801561027c57600080fd5b506101b961028b366004612501565b6109b1565b34801561029c57600080fd5b506102b06102ab3660046129dd565b610a02565b6040516101909190612a41565b3480156102c957600080fd5b506101b96102d8366004612501565b610a99565b6101b96102eb366004612a4f565b610bbe565b3480156102fc57600080fd5b5060d554610186565b34801561031157600080fd5b50610186610c8e565b34801561032657600080fd5b506101b9610335366004612501565b610d41565b34801561034657600080fd5b506101b9610d92565b34801561035b57600080fd5b5060cf54610186565b34801561037057600080fd5b506097546040516001600160a01b039091168152602001610190565b34801561039857600080fd5b506101b96103a7366004612af7565b610da6565b3480156103b857600080fd5b506103c1610efe565b6040516101909190612b45565b3480156103da57600080fd5b506103ee6103e9366004612b89565b6112b7565b6040516101909190612cb1565b34801561040757600080fd5b506101b9610416366004612501565b6115c6565b34801561042757600080fd5b506101b9610436366004612b89565b61163c565b34801561044757600080fd5b506101db610456366004612b89565b600090815260d16020526040902060038101546002909101549091565b600054610100900460ff16158080156104935750600054600160ff909116105b806104ad5750303b1580156104ad575060005460ff166001145b6105155760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610538576000805461ff0019166101001790555b60c980546001600160a01b038087166001600160a01b03199283161790925560cb80549286169290911691909117905560d582905561057561166c565b80156105bb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6001600160a01b038116600090815260cd602052604081205481901561060b576001600160a01b038316600090815260cd602052604090205461060690600190612d74565b61060e565b60005b6001600160a01b038416600090815260ce602052604090205415610656576001600160a01b038416600090815260ce602052604090205461065190600190612d74565b610659565b60005b91509150915091565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106aa5760405162461bcd60e51b815260040161050c90612d87565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106f3600080516020612f73833981519152546001600160a01b031690565b6001600160a01b0316146107195760405162461bcd60e51b815260040161050c90612dd3565b6107228161169b565b6040805160008082526020820190925261073e918391906116a3565b50565b60008060005b60d05481101561078557600061075d828661180e565b90508060001914610772579094909350915050565b508061077d81612e1f565b915050610747565b5060001993849350915050565b61079a611b82565b6001600160a01b0381166107c15760405163f6b2911f60e01b815260040160405180910390fd5b60cc80546001600160a01b0319166001600160a01b0392909216919091179055565b6097546001600160a01b0316331480159061088f575060cb546001600160a01b03163314158061088f575060ca5460cb5460408051636e296e4560e01b815290516001600160a01b039384169390921691636e296e45916004808201926020929091908290030181865afa15801561085f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108839190612e38565b6001600160a01b031614155b156108ad57604051630ba6b4d160e31b815260040160405180910390fd5b8051600081815260d16020908152604090912060010154908301511161091257602082810151600083815260d190925260409182902060010154915163699745e360e01b8152600481018490526024810191909152604481019190915260640161050c565b60cf805490600061092283612e1f565b9091555050600081815260d1602052604081206001015490036109555760d0805490600061094f83612e1f565b91905055505b61095e82611bdc565b826001600160a01b03168260200151827f086df69ece965de938d49c9d0eca0f14e39b9d5b178e0358d27ef0fdde2672f860cf600001546040516109a491815260200190565b60405180910390a4505050565b6109b9611b82565b6001600160a01b0381166109e05760405163f6b2911f60e01b815260040160405180910390fd5b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b610a0a612314565b600083815260d160205260409020600401805483908110610a2d57610a2d612e55565b6000918252602091829020604080518082018252600590930290910180546001600160a01b0316835281516080810190925291928301906001830160048282826020028201915b815481526020019060010190808311610a745750505050508152505090505b92915050565b6001600160a01b038116610ac05760405163f6b2911f60e01b815260040160405180910390fd5b33600090815260cd602090815260408083205460ce909252909120546001811115610b1d5733600090815260ce60205260409020600190819055610b1d908490610b0a9084612d74565b60c9546001600160a01b03169190611d91565b6001821115610bb95733600090815260cd6020526040902060019081905560cc546001600160a01b031690630ad98f6a908590610b5a9086612d74565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015610ba057600080fd5b505af1158015610bb4573d6000803e3d6000fd5b505050505b505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c065760405162461bcd60e51b815260040161050c90612d87565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c4f600080516020612f73833981519152546001600160a01b031690565b6001600160a01b031614610c755760405162461bcd60e51b815260040161050c90612dd3565b610c7e8261169b565b610c8a828260016116a3565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d2e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161050c565b50600080516020612f7383398151915290565b610d49611b82565b6001600160a01b038116610d705760405163f6b2911f60e01b815260040160405180910390fd5b60ca80546001600160a01b0319166001600160a01b0392909216919091179055565b610d9a611b82565b610da46000611de3565b565b60cc546001600160a01b03163314610dd15760405163469666c560e01b815260040160405180910390fd5b60005b83518110156105bb578260cd6000868481518110610df457610df4612e55565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254610e2b9190612e6b565b925050819055508160ce6000868481518110610e4957610e49612e55565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254610e809190612e6b565b92505081905550838181518110610e9957610e99612e55565b60200260200101516001600160a01b03167f8353a804115421789f3ab2eeb3f5215943906ce12100c91d40fc865caf742b6f8484604051610ee4929190918252602082015260400190565b60405180910390a280610ef681612e1f565b915050610dd4565b6060600060cf6001015467ffffffffffffffff811115610f2057610f2061251e565b604051908082528060200260200182016040528015610f49578160200160208202803683370190505b5090506000805b60d0548110156112a557600081815260d1602090815260408083208151610120810183528154815260018201548185015260028201548184015260038201546060820152600482018054845181870281018701909552808552919492936080860193909290879084015b828210156110335760008481526020908190206040805180820182526005860290920180546001600160a01b0316835281516080810190925291928301906001830160048282826020028201915b8154815260200190600101908083116110085750505050508152505081526020019060010190610fba565b5050505081526020016005820180548060200260200160405190810160405280929190818152602001828054801561109457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611076575b5050505050815260200160068201805480602002602001604051908101604052809291908181526020016000905b8282101561120b57838290600052602060002090600702016040518060400160405290816000820180548060200260200160405190810160405280929190818152602001828054801561113e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611120575b50505091835250506040805160608101825260018401805482528251608081019384905260209485019492939192840191600287019060049082845b81548152602001906001019080831161117a5750505050508152602001600582018054806020026020016040519081016040528092919081815260200182805480156111ef57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111d1575b50505050508152505081525050815260200190600101906110c2565b50505090825250600782015460ff1615156020820152604080516080810182529101906008830160048282826020028201915b81548152602001906001019080831161123e5750505050508152505090508060e0015115611292578184848151811061127957611279612e55565b60209081029190910101528261128e81612e1f565b9350505b508061129d81612e1f565b915050610f50565b506112b08282611e35565b9250505090565b6112bf61233c565b600082815260d1602090815260408083208151610120810183528154815260018201548185015260028201548184015260038201546060820152600482018054845181870281018701909552808552919592946080870194939192919084015b828210156113985760008481526020908190206040805180820182526005860290920180546001600160a01b0316835281516080810190925291928301906001830160048282826020028201915b81548152602001906001019080831161136d575050505050815250508152602001906001019061131f565b505050508152602001600582018054806020026020016040519081016040528092919081815260200182805480156113f957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113db575b5050505050815260200160068201805480602002602001604051908101604052809291908181526020016000905b828210156115705783829060005260206000209060070201604051806040016040529081600082018054806020026020016040519081016040528092919081815260200182805480156114a357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611485575b50505091835250506040805160608101825260018401805482528251608081019384905260209485019492939192840191600287019060049082845b8154815260200190600101908083116114df57505050505081526020016005820180548060200260200160405190810160405280929190818152602001828054801561155457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611536575b5050505050815250508152505081526020019060010190611427565b50505090825250600782015460ff1615156020820152604080516080810182529101906008830160048282826020028201915b8154815260200190600101908083116115a3575050505050815250509050919050565b6115ce611b82565b6001600160a01b0381166116335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161050c565b61073e81611de3565b60cc546001600160a01b031633146116675760405163469666c560e01b815260040160405180910390fd5b60d555565b600054610100900460ff166116935760405162461bcd60e51b815260040161050c90612e7e565b610da4611eda565b61073e611b82565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116d657610bb983611f0a565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611730575060408051601f3d908101601f1916820190925261172d91810190612ec9565b60015b6117935760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161050c565b600080516020612f7383398151915281146118025760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161050c565b50610bb9838383611fa6565b600082815260d160209081526040808320815161012081018352815481526001820154818501526002820154818401526003820154606082015260048201805484518187028101870190955280855286959294608086019390929190879084015b828210156118e85760008481526020908190206040805180820182526005860290920180546001600160a01b0316835281516080810190925291928301906001830160048282826020028201915b8154815260200190600101908083116118bd575050505050815250508152602001906001019061186f565b5050505081526020016005820180548060200260200160405190810160405280929190818152602001828054801561194957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161192b575b5050505050815260200160068201805480602002602001604051908101604052809291908181526020016000905b82821015611ac05783829060005260206000209060070201604051806040016040529081600082018054806020026020016040519081016040528092919081815260200182805480156119f357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119d5575b50505091835250506040805160608101825260018401805482528251608081019384905260209485019492939192840191600287019060049082845b815481526020019060010190808311611a2f575050505050815260200160058201805480602002602001604051908101604052809291908181526020018280548015611aa457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a86575b5050505050815250508152505081526020019060010190611977565b50505090825250600782015460ff1615156020820152604080516080810182529101906008830160048282826020028201915b815481526020019060010190808311611af357505050505081525050905060005b816080015151811015611b7657836001600160a01b031682608001518281518110611b4157611b41612e55565b6020026020010151600001516001600160a01b031603611b64579150610a939050565b80611b6e81612e1f565b915050611b14565b50600019949350505050565b6097546001600160a01b03163314610da45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161050c565b8051600090815260d1602090815260408083208451815591840151600183015560608401516003830155830151600282015560e083015160078201805460ff191691151591909117905590611c3590600483019061238a565b60005b8260400151811015611d5e57600083608001518281518110611c5c57611c5c612e55565b60200260200101516000015190508260040184608001518381518110611c8457611c84612e55565b602090810291909101810151825460018082018555600094855293839020825160059092020180546001600160a01b0319166001600160a01b03909216919091178155918101519092611cdc919083019060046123ab565b5050506001600160a01b038116600090815260cd6020526040902054158015611d1b57506001600160a01b038116600090815260ce6020526040902054155b15611d4b576001600160a01b038116600090815260cd6020908152604080832060019081905560ce909252909120555b5080611d5681612e1f565b915050611c38565b5060a08201518051611d7a9160058401916020909101906123e9565b50610100820151610bb990600883019060046123ab565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610bb9908490611fcb565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606060008267ffffffffffffffff811115611e5257611e5261251e565b604051908082528060200260200182016040528015611e7b578160200160208202803683370190505b50905060005b83811015611ed257848181518110611e9b57611e9b612e55565b6020026020010151828281518110611eb557611eb5612e55565b602090810291909101015280611eca81612e1f565b915050611e81565b509392505050565b600054610100900460ff16611f015760405162461bcd60e51b815260040161050c90612e7e565b610da433611de3565b6001600160a01b0381163b611f775760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161050c565b600080516020612f7383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611faf836120a0565b600082511180611fbc5750805b15610bb9576105bb83836120e0565b6000612020826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661210c9092919063ffffffff16565b90508051600014806120415750808060200190518101906120419190612ee2565b610bb95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161050c565b6120a981611f0a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606121058383604051806060016040528060278152602001612f9360279139612123565b9392505050565b606061211b848460008561219b565b949350505050565b6060600080856001600160a01b0316856040516121409190612f23565b600060405180830381855af49150503d806000811461217b576040519150601f19603f3d011682016040523d82523d6000602084013e612180565b606091505b509150915061219186838387612276565b9695505050505050565b6060824710156121fc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161050c565b600080866001600160a01b031685876040516122189190612f23565b60006040518083038185875af1925050503d8060008114612255576040519150601f19603f3d011682016040523d82523d6000602084013e61225a565b606091505b509150915061226b87838387612276565b979650505050505050565b606083156122e55782516000036122de576001600160a01b0385163b6122de5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161050c565b508161211b565b61211b83838151156122fa5781518083602001fd5b8060405162461bcd60e51b815260040161050c9190612f3f565b604051806040016040528060006001600160a01b0316815260200161233761243e565b905290565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160608152602001606081526020016060815260200160001515815260200161233761243e565b508054600082556005029060005260206000209081019061073e919061245c565b82600481019282156123d9579160200282015b828111156123d95782518255916020019190600101906123be565b506123e5929150612496565b5090565b8280548282559060005260206000209081019282156123d9579160200282015b828111156123d957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612409565b60405180608001604052806004906020820280368337509192915050565b808211156123e55780546001600160a01b03191681556000600182018190556002820181905560038201819055600482015560050161245c565b5b808211156123e55760008155600101612497565b6001600160a01b038116811461073e57600080fd5b6000806000606084860312156124d557600080fd5b83356124e0816124ab565b925060208401356124f0816124ab565b929592945050506040919091013590565b60006020828403121561251357600080fd5b8135612105816124ab565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156125575761255761251e565b60405290565b6040516060810167ffffffffffffffff811182821017156125575761255761251e565b604051610120810167ffffffffffffffff811182821017156125575761255761251e565b604051601f8201601f1916810167ffffffffffffffff811182821017156125cd576125cd61251e565b604052919050565b600067ffffffffffffffff8211156125ef576125ef61251e565b5060051b60200190565b600082601f83011261260a57600080fd5b6040516080810181811067ffffffffffffffff8211171561262d5761262d61251e565b60405280608084018581111561264257600080fd5b845b8181101561265c578035835260209283019201612644565b509195945050505050565b600082601f83011261267857600080fd5b8135602061268d612688836125d5565b6125a4565b82815260a092830285018201928282019190878511156126ac57600080fd5b8387015b858110156126fa5781818a0312156126c85760008081fd5b6126d0612534565b81356126db816124ab565b81526126e98a8388016125f9565b8187015284529284019281016126b0565b5090979650505050505050565b600082601f83011261271857600080fd5b81356020612728612688836125d5565b82815260059290921b8401810191818101908684111561274757600080fd5b8286015b8481101561276b57803561275e816124ab565b835291830191830161274b565b509695505050505050565b600082601f83011261278757600080fd5b81356020612797612688836125d5565b82815260059290921b840181019181810190868411156127b657600080fd5b8286015b8481101561276b57803567ffffffffffffffff808211156127da57600080fd5b908801906040601f19838c0381018213156127f457600080fd5b6127fc612534565b888501358481111561280d57600080fd5b61281b8e8b83890101612707565b825250828501358481111561282f57600080fd5b949094019360c0858e03830112156128475760008081fd5b61284f61255d565b91508885013582526128638d8487016125f9565b8983015260c08501358481111561287a5760008081fd5b6128888e8b83890101612707565b938301939093528089019190915286525050509183019183016127ba565b801515811461073e57600080fd5b80356128bf816128a6565b919050565b600080604083850312156128d757600080fd5b82356128e2816124ab565b9150602083013567ffffffffffffffff808211156128ff57600080fd5b90840190610180828703121561291457600080fd5b61291c612580565b8235815260208301356020820152604083013560408201526060830135606082015260808301358281111561295057600080fd5b61295c88828601612667565b60808301525060a08301358281111561297457600080fd5b61298088828601612707565b60a08301525060c08301358281111561299857600080fd5b6129a488828601612776565b60c0830152506129b660e084016128b4565b60e082015261010091506129cc878385016125f9565b828201528093505050509250929050565b600080604083850312156129f057600080fd5b50508035926020909101359150565b8060005b60048110156105bb578151845260209384019390910190600101612a03565b6001600160a01b0381511682526020810151610bb960208401826129ff565b60a08101610a938284612a22565b60008060408385031215612a6257600080fd5b8235612a6d816124ab565b915060208381013567ffffffffffffffff80821115612a8b57600080fd5b818601915086601f830112612a9f57600080fd5b813581811115612ab157612ab161251e565b612ac3601f8201601f191685016125a4565b91508082528784828501011115612ad957600080fd5b80848401858401376000848284010152508093505050509250929050565b600080600060608486031215612b0c57600080fd5b833567ffffffffffffffff811115612b2357600080fd5b612b2f86828701612707565b9660208601359650604090950135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015612b7d57835183529284019291840191600101612b61565b50909695505050505050565b600060208284031215612b9b57600080fd5b5035919050565b600081518084526020808501945080840160005b83811015612bdc57612bc9878351612a22565b60a0969096019590820190600101612bb6565b509495945050505050565b600081518084526020808501945080840160005b83811015612bdc5781516001600160a01b031687529582019590820190600101612bfb565b6000815180845260208085019450848260051b860182860160005b858110156126fa578383038952815160408151818652612c5d82870182612be7565b90508783015192508581038887015260c08351825288840151612c828a8401826129ff565b508284015193508060a0830152612c9b81830185612be7565b9c89019c96505050928601925050600101612c3b565b60208152815160208201526020820151604082015260408201516060820152606082015160808201526000608083015161018060a0840152612cf76101a0840182612ba2565b905060a0840151601f19808584030160c0860152612d158383612be7565b925060c08601519150808584030160e086015250612d338282612c20565b91505060e0840151610100612d4b8186018315159052565b8501519050611ed26101208501826129ff565b634e487b7160e01b600052601160045260246000fd5b81810381811115610a9357610a93612d5e565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060018201612e3157612e31612d5e565b5060010190565b600060208284031215612e4a57600080fd5b8151612105816124ab565b634e487b7160e01b600052603260045260246000fd5b80820180821115610a9357610a93612d5e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600060208284031215612edb57600080fd5b5051919050565b600060208284031215612ef457600080fd5b8151612105816128a6565b60005b83811015612f1a578181015183820152602001612f02565b50506000910152565b60008251612f35818460208701612eff565b9190910192915050565b6020815260008251806020840152612f5e816040850160208701612eff565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122099d284ae423d811c2b95a9b2d2f6841fe3d9dd4af16fe665311a4c830a99a1f164736f6c63430008120033","sourceMap":"667:8701:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6370:130;;;;;;;;;;-1:-1:-1;6472:21:70;;6370:130;;;160:25:104;;;148:2;133:18;6370:130:70;;;;;;;;2363:286;;;;;;;;;;-1:-1:-1;2363:286:70;;;;;:::i;:::-;;:::i;:::-;;7563:391;;;;;;;;;;-1:-1:-1;7563:391:70;;;;;:::i;:::-;;:::i;:::-;;;;1242:25:104;;;1298:2;1283:18;;1276:34;;;;1215:18;7563:391:70;1068:248:104;3408:195:37;;;;;;;;;;-1:-1:-1;3408:195:37;;;;;:::i;:::-;;:::i;7127:430:70:-;;;;;;;;;;-1:-1:-1;7127:430:70;;;;;:::i;:::-;;:::i;4015:254::-;;;;;;;;;;-1:-1:-1;4015:254:70;;;;;:::i;:::-;;:::i;2655:849::-;;;;;;;;;;-1:-1:-1;2655:849:70;;;;;:::i;:::-;;:::i;3730:279::-;;;;;;;;;;-1:-1:-1;3730:279:70;;;;;:::i;:::-;;:::i;6887:234::-;;;;;;;;;;-1:-1:-1;6887:234:70;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4275:677::-;;;;;;;;;;-1:-1:-1;4275:677:70;;;;;:::i;:::-;;:::i;3922:220:37:-;;;;;;:::i;:::-;;:::i;7960:92:70:-;;;;;;;;;;-1:-1:-1;8034:11:70;;7960:92;;3027:131:37;;;;;;;;;;;;;:::i;3510:214:70:-;;;;;;;;;;-1:-1:-1;3510:214:70;;;;;:::i;:::-;;:::i;2085:101:31:-;;;;;;;;;;;;;:::i;6239:125:70:-;;;;;;;;;;-1:-1:-1;6341:10:70;:16;6239:125;;1462:85:31;;;;;;;;;;-1:-1:-1;1534:6:31;;1462:85;;-1:-1:-1;;;;;1534:6:31;;;11583:74:104;;11571:2;11556:18;1462:85:31;11437:226:104;4958:477:70;;;;;;;;;;-1:-1:-1;4958:477:70;;;;;:::i;:::-;;:::i;5670:563::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6506:154::-;;;;;;;;;;-1:-1:-1;6506:154:70;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2335:198:31:-;;;;;;;;;;-1:-1:-1;2335:198:31;;;;;:::i;:::-;;:::i;5441:223:70:-;;;;;;;;;;-1:-1:-1;5441:223:70;;;;;:::i;:::-;;:::i;6666:215::-;;;;;;;;;;-1:-1:-1;6666:215:70;;;;;:::i;:::-;6762:7;6798:29;;;:17;:29;;;;;:39;;;;:17;6839:34;;;;6798:39;;6666:215;2363:286;3279:19:36;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:36;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:36;1713:19:38;:23;;;3387:66:36;;-1:-1:-1;3436:12:36;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:36;;16804:2:104;3325:201:36;;;16786:21:104;16843:2;16823:18;;;16816:30;16882:34;16862:18;;;16855:62;-1:-1:-1;;;16933:18:104;;;16926:44;16987:19;;3325:201:36;;;;;;;;;3536:12;:16;;-1:-1:-1;;3536:16:36;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:36;;;;;3562:65;2478:5:70::1;:20:::0;;-1:-1:-1;;;;;2478:20:70;;::::1;-1:-1:-1::0;;;;;;2478:20:70;;::::1;;::::0;;;2508:23:::1;:73:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;2591:11:::1;:24:::0;;;2626:16:::1;:14;:16::i;:::-;3651:14:36::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:36;;;3721:14;;-1:-1:-1;17169:36:104;;3721:14:36;;17157:2:104;17142:18;3721:14:36;;;;;;;3647:99;3269:483;2363:286:70;;;:::o;7563:391::-;-1:-1:-1;;;;;7753:30:70;;7700:7;7753:30;;;:17;:30;;;;;;7700:7;;7753:35;:90;;-1:-1:-1;;;;;7796:30:70;;;;;;:17;:30;;;;;;:46;;1117:1;;7796:46;:::i;:::-;7753:90;;;7791:1;7753:90;-1:-1:-1;;;;;7857:25:70;;;;;;:12;:25;;;;;;:30;:80;;-1:-1:-1;;;;;7895:25:70;;;;;;:12;:25;;;;;;:41;;1117:1;;7895:41;:::i;:::-;7857:80;;;7890:1;7857:80;7732:215;;;;7563:391;;;:::o;3408:195:37:-;-1:-1:-1;;;;;1764:6:37;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:37;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:37;:20;-1:-1:-1;;;;;;;;;;;1557:65:34;-1:-1:-1;;;;;1557:65:34;;1478:151;1837:20:37;-1:-1:-1;;;;;1837:30:37;;1829:87;;;;-1:-1:-1;;;1829:87:37;;;;;;;:::i;:::-;3489:36:::1;3507:17;3489;:36::i;:::-;3576:12;::::0;;3586:1:::1;3576:12:::0;;;::::1;::::0;::::1;::::0;;;3535:61:::1;::::0;3557:17;;3576:12;3535:21:::1;:61::i;:::-;3408:195:::0;:::o;7127:430:70:-;7258:6;7266;7293:9;7288:238;7312:21;;7308:25;;7288:238;;;7354:18;7375:40;7400:1;7403:11;7375:24;:40::i;:::-;7354:61;;7433:11;-1:-1:-1;;7433:17:70;7429:87;;7485:1;;7489:11;;-1:-1:-1;7127:430:70;-1:-1:-1;;7127:430:70:o;7429:87::-;-1:-1:-1;7335:3:70;;;;:::i;:::-;;;;7288:238;;;-1:-1:-1;;;7543:2:70;;;-1:-1:-1;7127:430:70;-1:-1:-1;;7127:430:70:o;4015:254::-;1355:13:31;:11;:13::i;:::-;-1:-1:-1;;;;;4115:36:70;::::1;4111:94;;4174:20;;-1:-1:-1::0;;;4174:20:70::1;;;;;;;;;;;4111:94;4214:23;:48:::0;;-1:-1:-1;;;;;;4214:48:70::1;-1:-1:-1::0;;;;;4214:48:70;;;::::1;::::0;;;::::1;::::0;;4015:254::o;2655:849::-;1534:6:31;;-1:-1:-1;;;;;1534:6:31;2751:10:70;:21;;;;:220;;-1:-1:-1;2836:23:70;;-1:-1:-1;;;;;2836:23:70;2814:10;:46;;;:139;;-1:-1:-1;2938:15:70;;2888:23;;:46;;;-1:-1:-1;;;2888:46:70;;;;-1:-1:-1;;;;;2938:15:70;;;;2888:23;;;;:44;;:46;;;;;;;;;;;;;;;:23;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2888:65:70;;;2814:139;2734:305;;;3003:25;;-1:-1:-1;;;3003:25:70;;;;;;;;;;;2734:305;3070:11;;3049:18;3111:29;;;:17;:29;;;;;;;;:35;;;3096:11;;;;:50;3092:163;;3195:11;;;;;3208:29;;;;:17;:29;;;;;;;;:35;;;3169:75;;-1:-1:-1;;;3169:75:70;;;;;18905:25:104;;;18946:18;;;18939:34;;;;18989:18;;;18982:34;;;;18878:18;;3169:75:70;18703:319:104;3092:163:70;3265:10;:18;;;:16;:18;;;:::i;:::-;;;;-1:-1:-1;;3298:29:70;;;;:17;:29;;;;;:35;;;:40;;3294:94;;3354:21;:23;;;:21;:23;;;:::i;:::-;;;;;;3294:94;3398:17;3409:5;3398:10;:17::i;:::-;3487:9;-1:-1:-1;;;;;3431:66:70;3474:5;:11;;;3462:10;3431:66;3444:10;:16;;;3431:66;;;;160:25:104;;148:2;133:18;;14:177;3431:66:70;;;;;;;;2724:780;2655:849;;:::o;3730:279::-;1355:13:31;:11;:13::i;:::-;-1:-1:-1;;;;;3830:36:70;::::1;3826:94;;3889:20;;-1:-1:-1::0;;;3889:20:70::1;;;;;;;;;;;3826:94;3929:23;:73:::0;;-1:-1:-1;;;;;;3929:73:70::1;-1:-1:-1::0;;;;;3929:73:70;;;::::1;::::0;;;::::1;::::0;;3730:279::o;6887:234::-;7028:13;;:::i;:::-;7064:29;;;;:17;:29;;;;;:37;;:50;;7102:11;;7064:50;;;;;;:::i;:::-;;;;;;;;;;7057:57;;;;;;;;7064:50;;;;;;;7057:57;;-1:-1:-1;;;;;7057:57:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6887:234;;;;;:::o;4275:677::-;-1:-1:-1;;;;;4367:23:70;;4363:81;;4413:20;;-1:-1:-1;;;4413:20:70;;;;;;;;;;;4363:81;4491:10;4453:17;4473:29;;;:17;:29;;;;;;;;;4533:12;:24;;;;;;;1117:1;4571:26;;4567:168;;;4626:10;4613:24;;;;:12;:24;;;;;1117:1;4613:40;;;;4667:57;;4686:9;;4697:26;;:10;:26;:::i;:::-;4667:5;;-1:-1:-1;;;;;4667:5:70;;:57;:18;:57::i;:::-;1117:1;4748:25;;4744:202;;;4807:10;4789:29;;;;:17;:29;;;;;1117:1;4789:45;;;;4857:23;;-1:-1:-1;;;;;4857:23:70;;4848:49;;4898:9;;4909:25;;:9;:25;:::i;:::-;4848:87;;-1:-1:-1;;;;;;4848:87:70;;;;;;;-1:-1:-1;;;;;19351:55:104;;;4848:87:70;;;19333:74:104;19423:18;;;19416:34;19306:18;;4848:87:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4744:202;4353:599;;4275:677;:::o;3922:220:37:-;-1:-1:-1;;;;;1764:6:37;1747:23;1755:4;1747:23;1739:80;;;;-1:-1:-1;;;1739:80:37;;;;;;;:::i;:::-;1861:6;-1:-1:-1;;;;;1837:30:37;:20;-1:-1:-1;;;;;;;;;;;1557:65:34;-1:-1:-1;;;;;1557:65:34;;1478:151;1837:20:37;-1:-1:-1;;;;;1837:30:37;;1829:87;;;;-1:-1:-1;;;1829:87:37;;;;;;;:::i;:::-;4037:36:::1;4055:17;4037;:36::i;:::-;4083:52;4105:17;4124:4;4130;4083:21;:52::i;:::-;3922:220:::0;;:::o;3027:131::-;3105:7;2190:4;-1:-1:-1;;;;;2199:6:37;2182:23;;2174:92;;;;-1:-1:-1;;;2174:92:37;;19663:2:104;2174:92:37;;;19645:21:104;19702:2;19682:18;;;19675:30;19741:34;19721:18;;;19714:62;19812:26;19792:18;;;19785:54;19856:19;;2174:92:37;19461:420:104;2174:92:37;-1:-1:-1;;;;;;;;;;;;3027:131:37;:::o;3510:214:70:-;1355:13:31;:11;:13::i;:::-;-1:-1:-1;;;;;3594:28:70;::::1;3590:86;;3645:20;;-1:-1:-1::0;;;3645:20:70::1;;;;;;;;;;;3590:86;3685:15;:32:::0;;-1:-1:-1;;;;;;3685:32:70::1;-1:-1:-1::0;;;;;3685:32:70;;;::::1;::::0;;;::::1;::::0;;3510:214::o;2085:101:31:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;4958:477:70:-;5123:23;;-1:-1:-1;;;;;5123:23:70;5109:10;:37;5105:93;;5169:18;;-1:-1:-1;;;5169:18:70;;;;;;;;;;;5105:93;5212:9;5207:222;5231:5;:12;5227:1;:16;5207:222;;;5295:9;5264:17;:27;5282:5;5288:1;5282:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;5264:27:70;-1:-1:-1;;;;;5264:27:70;;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;;;;;;;5344:10;5318:12;:22;5331:5;5337:1;5331:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;5318:22:70;-1:-1:-1;;;;;5318:22:70;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;5386:5;5392:1;5386:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;5373:45:70;;5396:9;5407:10;5373:45;;;;;;1242:25:104;;;1298:2;1283:18;;1276:34;1230:2;1215:18;;1068:248;5373:45:70;;;;;;;;5245:3;;;;:::i;:::-;;;;5207:222;;5670:563;5751:16;5779:29;5825:10;:21;;;5811:36;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5811:36:70;;5779:68;;5885:13;5917:9;5912:250;5936:21;;5932:25;;5912:250;;;5978:14;5995:20;;;:17;:20;;;;;;;;5978:37;;;;;;;;;;;;;;;;;;;5995:17;5978:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5995:20;;5978:37;;;;;;;:14;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5978:37:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5978:37:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5978:37:70;;;;;;;;;;;;;;;;-1:-1:-1;;;5978:37:70;;;-1:-1:-1;;5978:37:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5978:37:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5978:37:70;;;-1:-1:-1;5978:37:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6033:1;:36;;;6029:123;;;6111:1;6089:12;6102:5;6089:19;;;;;;;;:::i;:::-;;;;;;;;;;:23;6130:7;;;;:::i;:::-;;;;6029:123;-1:-1:-1;5959:3:70;;;;:::i;:::-;;;;5912:250;;;;6179:47;6206:12;6220:5;6179:26;:47::i;:::-;6172:54;;;;5670:563;:::o;6506:154::-;6593:12;;:::i;:::-;6624:29;;;;:17;:29;;;;;;;;6617:36;;;;;;;;;;;;;;;;;;;6624:17;6617:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6624:29;;6617:36;;;;;;;;6624:29;6617:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6617:36:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6617:36:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6617:36:70;;;;;;;;;;;;;;;;-1:-1:-1;;;6617:36:70;;;-1:-1:-1;;6617:36:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6617:36:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6617:36:70;;;-1:-1:-1;6617:36:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6506:154;;;:::o;2335:198:31:-;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:31;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:31;;20218:2:104;2415:73:31::1;::::0;::::1;20200:21:104::0;20257:2;20237:18;;;20230:30;20296:34;20276:18;;;20269:62;-1:-1:-1;;;20347:18:104;;;20340:36;20393:19;;2415:73:31::1;20016:402:104::0;2415:73:31::1;2498:28;2517:8;2498:18;:28::i;5441:223:70:-:0;5549:23;;-1:-1:-1;;;;;5549:23:70;5535:10;:37;5531:93;;5595:18;;-1:-1:-1;;;5595:18:70;;;;;;;;;;;5531:93;5633:11;:24;5441:223::o;1024:95:31:-;5374:13:36;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:36;;;;;;;:::i;:::-;1086:26:31::1;:24;:26::i;2291:66:70:-:0;1355:13:31;:11;:13::i;2841:944:34:-;839:66;3257:59;;;3253:526;;;3332:37;3351:17;3332:18;:37::i;3253:526::-;3433:17;-1:-1:-1;;;;;3404:61:34;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3404:63:34;;;;;;;;-1:-1:-1;;3404:63:34;;;;;;;;;;;;:::i;:::-;;;3400:302;;3631:56;;-1:-1:-1;;;3631:56:34;;21226:2:104;3631:56:34;;;21208:21:104;21265:2;21245:18;;;21238:30;21304:34;21284:18;;;21277:62;-1:-1:-1;;;21355:18:104;;;21348:44;21409:19;;3631:56:34;21024:410:104;3400:302:34;-1:-1:-1;;;;;;;;;;;3517:28:34;;3509:82;;;;-1:-1:-1;;;3509:82:34;;21641:2:104;3509:82:34;;;21623:21:104;21680:2;21660:18;;;21653:30;21719:34;21699:18;;;21692:62;-1:-1:-1;;;21770:18:104;;;21763:39;21819:19;;3509:82:34;21439:405:104;3509:82:34;3468:138;3715:53;3733:17;3752:4;3758:9;3715:17;:53::i;9002:364:70:-;9100:6;9135:29;;;:17;:29;;;;;;;;9118:46;;;;;;;;;;;;;;;;;;;9135:17;9118:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9100:6;;9118:46;;;;;;;;;;9100:6;;9118:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9118:46:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9118:46:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9118:46:70;;;;;;;;;;;;;;;;-1:-1:-1;;;9118:46:70;;;-1:-1:-1;;9118:46:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9118:46:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9118:46:70;;;-1:-1:-1;9118:46:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9179:9;9174:167;9198:1;:9;;;:16;9194:1;:20;9174:167;;;9269:11;-1:-1:-1;;;;;9239:41:70;:1;:9;;;9249:1;9239:12;;;;;;;;:::i;:::-;;;;;;;:26;;;-1:-1:-1;;;;;9239:41:70;;9235:96;;9314:1;-1:-1:-1;9300:16:70;;-1:-1:-1;9300:16:70;9235:96;9216:3;;;;:::i;:::-;;;;9174:167;;;-1:-1:-1;;;9357:2:70;9002:364;-1:-1:-1;;;;9002:364:70:o;1620:130:31:-;1534:6;;-1:-1:-1;;;;;1534:6:31;965:10:39;1683:23:31;1675:68;;;;-1:-1:-1;;;1675:68:31;;22051:2:104;1675:68:31;;;22033:21:104;;;22070:18;;;22063:30;22129:34;22109:18;;;22102:62;22181:18;;1675:68:31;21849:356:104;8058:938:70;8153:11;;8117:15;8135:30;;;:17;:30;;;;;;;;8185:11;;8175:21;;8216:11;;;;8206:7;;;:21;8251:15;;;;8237:11;;;:29;8285:10;;;8135:17;8276:6;;:19;8344:40;;;;8305:36;;;:79;;-1:-1:-1;;8305:79:70;;;;;;;;;;8135:30;8394:16;;8401:9;;;;8394:16;:::i;:::-;8425:9;8420:490;8444:5;:10;;;8440:1;:14;8420:490;;;8475:21;8499:5;:13;;;8513:1;8499:16;;;;;;;;:::i;:::-;;;;;;;:30;;;8475:54;;8543:1;:9;;8558:5;:13;;;8572:1;8558:16;;;;;;;;:::i;:::-;;;;;;;;;;;;8543:32;;;;;;;;-1:-1:-1;8543:32:70;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8543:32:70;-1:-1:-1;;;;;8543:32:70;;;;;;;;;;;;;8558:16;;8543:32;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;8683:32:70;;;;;;:17;:32;;;;;;:37;:73;;;;-1:-1:-1;;;;;;8724:27:70;;;;;;:12;:27;;;;;;:32;8683:73;8679:221;;;-1:-1:-1;;;;;8776:32:70;;;;;;:17;:32;;;;;;;;1117:1;8776:48;;;;8842:12;:27;;;;;;:43;8679:221;-1:-1:-1;8456:3:70;;;;:::i;:::-;;;;8420:490;;;-1:-1:-1;8934:16:70;;;;8919:31;;;;:12;;;;:31;;;;;;:::i;:::-;-1:-1:-1;8974:15:70;;;;8960:29;;:11;;;;:29;;:::i;941:175:54:-;1050:58;;;-1:-1:-1;;;;;19351:55:104;;1050:58:54;;;19333:74:104;19423:18;;;;19416:34;;;1050:58:54;;;;;;;;;;19306:18:104;;;;1050:58:54;;;;;;;;-1:-1:-1;;;;;1050:58:54;-1:-1:-1;;;1050:58:54;;;1023:86;;1043:5;;1023:19;:86::i;2687:187:31:-;2779:6;;;-1:-1:-1;;;;;2795:17:31;;;-1:-1:-1;;;;;;2795:17:31;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;2604:261:97:-;2689:16;2713:23;2753:9;2739:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2739:24:97;;2713:50;;2774:9;2769:75;2793:9;2789:1;:13;2769:75;;;2831:3;2835:1;2831:6;;;;;;;;:::i;:::-;;;;;;;2819;2826:1;2819:9;;;;;;;;:::i;:::-;;;;;;;;;;:18;2804:3;;;;:::i;:::-;;;;2769:75;;;-1:-1:-1;2856:6:97;2604:261;-1:-1:-1;;;2604:261:97:o;1125:111:31:-;5374:13:36;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:36;;;;;;;:::i;:::-;1197:32:31::1;965:10:39::0;1197:18:31::1;:32::i;1720:281:34:-:0;-1:-1:-1;;;;;1713:19:38;;;1793:106:34;;;;-1:-1:-1;;;1793:106:34;;22412:2:104;1793:106:34;;;22394:21:104;22451:2;22431:18;;;22424:30;22490:34;22470:18;;;22463:62;-1:-1:-1;;;22541:18:104;;;22534:43;22594:19;;1793:106:34;22210:409:104;1793:106:34;-1:-1:-1;;;;;;;;;;;1909:85:34;;-1:-1:-1;;;;;;1909:85:34;-1:-1:-1;;;;;1909:85:34;;;;;;;;;;1720:281::o;2393:276::-;2501:29;2512:17;2501:10;:29::i;:::-;2558:1;2544:4;:11;:15;:28;;;;2563:9;2544:28;2540:123;;;2588:64;2628:17;2647:4;2588:39;:64::i;5196:642:54:-;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;-1:-1:-1;;;;;5641:27:54;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;-1:-1:-1;;;5720:111:54;;23076:2:104;5720:111:54;;;23058:21:104;23115:2;23095:18;;;23088:30;23154:34;23134:18;;;23127:62;-1:-1:-1;;;23205:18:104;;;23198:40;23255:19;;5720:111:54;22874:406:104;2107:152:34;2173:37;2192:17;2173:18;:37::i;:::-;2225:27;;-1:-1:-1;;;;;2225:27:34;;;;;;;;2107:152;:::o;6685:198:38:-;6768:12;6799:77;6820:6;6828:4;6799:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6792:84;6685:198;-1:-1:-1;;;6685:198:38:o;4108:223:55:-;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;:::-;4265:59;4108:223;-1:-1:-1;;;;4108:223:55:o;7069:325:38:-;7210:12;7235;7249:23;7276:6;-1:-1:-1;;;;;7276:19:38;7296:4;7276:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:67;;;;7318:69;7345:6;7353:7;7362:10;7374:12;7318:26;:69::i;:::-;7311:76;7069:325;-1:-1:-1;;;;;;7069:325:38:o;5165:446:55:-;5330:12;5387:5;5362:21;:30;;5354:81;;;;-1:-1:-1;;;5354:81:55;;24034:2:104;5354:81:55;;;24016:21:104;24073:2;24053:18;;;24046:30;24112:34;24092:18;;;24085:62;-1:-1:-1;;;24163:18:104;;;24156:36;24209:19;;5354:81:55;23832:402:104;5354:81:55;5446:12;5460:23;5487:6;-1:-1:-1;;;;;5487:11:55;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;5165:446;-1:-1:-1;;;;;;;5165:446:55:o;7682:628:38:-;7862:12;7890:7;7886:418;;;7917:10;:17;7938:1;7917:22;7913:286;;-1:-1:-1;;;;;1713:19:38;;;8124:60;;;;-1:-1:-1;;;8124:60:38;;24441:2:104;8124:60:38;;;24423:21:104;24480:2;24460:18;;;24453:30;24519:31;24499:18;;;24492:59;24568:18;;8124:60:38;24239:353:104;8124:60:38;-1:-1:-1;8219:10:38;8212:17;;7886:418;8260:33;8268:10;8280:12;8991:17;;:21;8987:379;;9219:10;9213:17;9275:15;9262:10;9258:2;9254:19;9247:44;8987:379;9342:12;9335:20;;-1:-1:-1;;;9335:20:38;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;196:154:104;-1:-1:-1;;;;;275:5:104;271:54;264:5;261:65;251:93;;340:1;337;330:12;355:456;432:6;440;448;501:2;489:9;480:7;476:23;472:32;469:52;;;517:1;514;507:12;469:52;556:9;543:23;575:31;600:5;575:31;:::i;:::-;625:5;-1:-1:-1;682:2:104;667:18;;654:32;695:33;654:32;695:33;:::i;:::-;355:456;;747:7;;-1:-1:-1;;;801:2:104;786:18;;;;773:32;;355:456::o;816:247::-;875:6;928:2;916:9;907:7;903:23;899:32;896:52;;;944:1;941;934:12;896:52;983:9;970:23;1002:31;1027:5;1002:31;:::i;1570:127::-;1631:10;1626:3;1622:20;1619:1;1612:31;1662:4;1659:1;1652:15;1686:4;1683:1;1676:15;1702:257;1774:4;1768:11;;;1806:17;;1853:18;1838:34;;1874:22;;;1835:62;1832:88;;;1900:18;;:::i;:::-;1936:4;1929:24;1702:257;:::o;1964:253::-;2036:2;2030:9;2078:4;2066:17;;2113:18;2098:34;;2134:22;;;2095:62;2092:88;;;2160:18;;:::i;2222:255::-;2294:2;2288:9;2336:6;2324:19;;2373:18;2358:34;;2394:22;;;2355:62;2352:88;;;2420:18;;:::i;2482:275::-;2553:2;2547:9;2618:2;2599:13;;-1:-1:-1;;2595:27:104;2583:40;;2653:18;2638:34;;2674:22;;;2635:62;2632:88;;;2700:18;;:::i;:::-;2736:2;2729:22;2482:275;;-1:-1:-1;2482:275:104:o;2762:189::-;2828:4;2861:18;2853:6;2850:30;2847:56;;;2883:18;;:::i;:::-;-1:-1:-1;2928:1:104;2924:14;2940:4;2920:25;;2762:189::o;2956:648::-;3006:5;3059:3;3052:4;3044:6;3040:17;3036:27;3026:55;;3077:1;3074;3067:12;3026:55;3110:2;3104:9;3152:3;3144:6;3140:16;3222:6;3210:10;3207:22;3186:18;3174:10;3171:34;3168:62;3165:88;;;3233:18;;:::i;:::-;3269:2;3262:22;3304:6;3345:3;3333:16;;3361:15;;;3358:35;;;3389:1;3386;3379:12;3358:35;3413:6;3428:146;3444:6;3439:3;3436:15;3428:146;;;3512:17;;3500:30;;3559:4;3550:14;;;;3461;3428:146;;;-1:-1:-1;3592:6:104;;2956:648;-1:-1:-1;;;;;2956:648:104:o;3609:1065::-;3669:5;3722:3;3715:4;3707:6;3703:17;3699:27;3689:55;;3740:1;3737;3730:12;3689:55;3776:6;3763:20;3802:4;3826:66;3842:49;3888:2;3842:49;:::i;:::-;3826:66;:::i;:::-;3926:15;;;3988:4;4031:11;;;4019:24;;4015:33;;;3957:12;;;;3914:3;4060:15;;;4057:35;;;4088:1;4085;4078:12;4057:35;4124:2;4116:6;4112:15;4136:509;4152:6;4147:3;4144:15;4136:509;;;4228:2;4222:3;4217;4213:13;4209:22;4206:112;;;4272:1;4301:2;4297;4290:14;4206:112;4344:22;;:::i;:::-;4407:3;4394:17;4424:33;4449:7;4424:33;:::i;:::-;4470:22;;4528:43;4567:3;4553:12;;;4528:43;:::i;:::-;4512:14;;;4505:67;4585:18;;4623:12;;;;4169;;4136:509;;;-1:-1:-1;4663:5:104;;3609:1065;-1:-1:-1;;;;;;;3609:1065:104:o;4679:743::-;4733:5;4786:3;4779:4;4771:6;4767:17;4763:27;4753:55;;4804:1;4801;4794:12;4753:55;4840:6;4827:20;4866:4;4890:66;4906:49;4952:2;4906:49;:::i;4890:66::-;4990:15;;;5076:1;5072:10;;;;5060:23;;5056:32;;;5021:12;;;;5100:15;;;5097:35;;;5128:1;5125;5118:12;5097:35;5164:2;5156:6;5152:15;5176:217;5192:6;5187:3;5184:15;5176:217;;;5272:3;5259:17;5289:31;5314:5;5289:31;:::i;:::-;5333:18;;5371:12;;;;5209;;5176:217;;;-1:-1:-1;5411:5:104;4679:743;-1:-1:-1;;;;;;4679:743:104:o;5427:1999::-;5492:5;5545:3;5538:4;5530:6;5526:17;5522:27;5512:55;;5563:1;5560;5553:12;5512:55;5599:6;5586:20;5625:4;5649:66;5665:49;5711:2;5665:49;:::i;5649:66::-;5749:15;;;5835:1;5831:10;;;;5819:23;;5815:32;;;5780:12;;;;5859:15;;;5856:35;;;5887:1;5884;5877:12;5856:35;5923:2;5915:6;5911:15;5935:1462;5951:6;5946:3;5943:15;5935:1462;;;6037:3;6024:17;6064:18;6114:2;6101:11;6098:19;6095:39;;;6130:1;6127;6120:12;6095:39;6157:24;;;;6204:4;-1:-1:-1;;6262:12:104;;;6258:21;;6254:30;-1:-1:-1;6251:50:104;;;6297:1;6294;6287:12;6251:50;6327:22;;:::i;:::-;6399:2;6395;6391:11;6378:25;6432:2;6422:8;6419:16;6416:36;;;6448:1;6445;6438:12;6416:36;6479:61;6536:3;6531:2;6520:8;6516:2;6512:17;6508:26;6479:61;:::i;:::-;6472:5;6465:76;;6591:2;6587;6583:11;6570:25;6624:2;6614:8;6611:16;6608:36;;;6640:1;6637;6630:12;6608:36;6667:17;;;;;6727:4;6708:12;;;6704:21;;6700:32;6697:122;;;6773:1;6802:2;6798;6791:14;6697:122;6847:22;;:::i;:::-;6832:37;;6919:2;6915;6911:11;6898:25;6889:7;6882:42;6962;7000:3;6995:2;6991;6987:11;6962:42;:::i;:::-;6957:2;6948:7;6944:16;6937:68;7055:4;7051:2;7047:13;7034:27;7090:2;7080:8;7077:16;7074:106;;;7134:1;7163:2;7159;7152:14;7074:106;7218:61;7275:3;7270:2;7259:8;7255:2;7251:17;7247:26;7218:61;:::i;:::-;7200:16;;;7193:87;;;;7300:14;;;7293:31;;;;7337:18;;-1:-1:-1;;;7375:12:104;;;;5968;;5935:1462;;7431:118;7517:5;7510:13;7503:21;7496:5;7493:32;7483:60;;7539:1;7536;7529:12;7554:128;7619:20;;7648:28;7619:20;7648:28;:::i;:::-;7554:128;;;:::o;7687:1565::-;7779:6;7787;7840:2;7828:9;7819:7;7815:23;7811:32;7808:52;;;7856:1;7853;7846:12;7808:52;7895:9;7882:23;7914:31;7939:5;7914:31;:::i;:::-;7964:5;-1:-1:-1;8020:2:104;8005:18;;7992:32;8043:18;8073:14;;;8070:34;;;8100:1;8097;8090:12;8070:34;8123:22;;;;8179:6;8161:16;;;8157:29;8154:49;;;8199:1;8196;8189:12;8154:49;8227:22;;:::i;:::-;8287:2;8274:16;8265:7;8258:33;8346:2;8342;8338:11;8325:25;8320:2;8311:7;8307:16;8300:51;8406:2;8402;8398:11;8385:25;8380:2;8371:7;8367:16;8360:51;8466:2;8462;8458:11;8445:25;8440:2;8431:7;8427:16;8420:51;8517:3;8513:2;8509:12;8496:26;8547:2;8537:8;8534:16;8531:36;;;8563:1;8560;8553:12;8531:36;8602:62;8656:7;8645:8;8641:2;8637:17;8602:62;:::i;:::-;8596:3;8587:7;8583:17;8576:89;;8711:3;8707:2;8703:12;8690:26;8741:2;8731:8;8728:16;8725:36;;;8757:1;8754;8747:12;8725:36;8796:56;8844:7;8833:8;8829:2;8825:17;8796:56;:::i;:::-;8790:3;8781:7;8777:17;8770:83;;8899:3;8895:2;8891:12;8878:26;8929:2;8919:8;8916:16;8913:36;;;8945:1;8942;8935:12;8913:36;8984:67;9043:7;9032:8;9028:2;9024:17;8984:67;:::i;:::-;8978:3;8969:7;8965:17;8958:94;;9087:29;9111:3;9107:2;9103:12;9087:29;:::i;:::-;9081:3;9072:7;9068:17;9061:56;9136:3;9126:13;;9173:46;9211:7;9206:2;9202;9198:11;9173:46;:::i;:::-;9168:2;9159:7;9155:16;9148:72;9239:7;9229:17;;;;;7687:1565;;;;;:::o;9257:248::-;9325:6;9333;9386:2;9374:9;9365:7;9361:23;9357:32;9354:52;;;9402:1;9399;9392:12;9354:52;-1:-1:-1;;9425:23:104;;;9495:2;9480:18;;;9467:32;;-1:-1:-1;9257:248:104:o;9510:326::-;9603:5;9626:1;9636:194;9650:4;9647:1;9644:11;9636:194;;;9709:13;;9697:26;;9746:4;9770:12;;;;9805:15;;;;9670:1;9663:9;9636:194;;9841:255;-1:-1:-1;;;;;9923:5:104;9917:12;9913:61;9908:3;9901:74;10021:4;10014:5;10010:16;10004:23;10036:54;10084:4;10079:3;10075:14;10061:12;10036:54;:::i;10101:246::-;10285:3;10270:19;;10298:43;10274:9;10323:6;10298:43;:::i;10352:898::-;10429:6;10437;10490:2;10478:9;10469:7;10465:23;10461:32;10458:52;;;10506:1;10503;10496:12;10458:52;10545:9;10532:23;10564:31;10589:5;10564:31;:::i;:::-;10614:5;-1:-1:-1;10638:2:104;10676:18;;;10663:32;10714:18;10744:14;;;10741:34;;;10771:1;10768;10761:12;10741:34;10809:6;10798:9;10794:22;10784:32;;10854:7;10847:4;10843:2;10839:13;10835:27;10825:55;;10876:1;10873;10866:12;10825:55;10912:2;10899:16;10934:2;10930;10927:10;10924:36;;;10940:18;;:::i;:::-;10982:53;11025:2;11006:13;;-1:-1:-1;;11002:27:104;10998:36;;10982:53;:::i;:::-;10969:66;;11058:2;11051:5;11044:17;11098:7;11093:2;11088;11084;11080:11;11076:20;11073:33;11070:53;;;11119:1;11116;11109:12;11070:53;11174:2;11169;11165;11161:11;11156:2;11149:5;11145:14;11132:45;11218:1;11213:2;11208;11201:5;11197:14;11193:23;11186:34;;11239:5;11229:15;;;;;10352:898;;;;;:::o;11668:484::-;11770:6;11778;11786;11839:2;11827:9;11818:7;11814:23;11810:32;11807:52;;;11855:1;11852;11845:12;11807:52;11895:9;11882:23;11928:18;11920:6;11917:30;11914:50;;;11960:1;11957;11950:12;11914:50;11983:61;12036:7;12027:6;12016:9;12012:22;11983:61;:::i;:::-;11973:71;12091:2;12076:18;;12063:32;;-1:-1:-1;12142:2:104;12127:18;;;12114:32;;11668:484;-1:-1:-1;;;;11668:484:104:o;12157:632::-;12328:2;12380:21;;;12450:13;;12353:18;;;12472:22;;;12299:4;;12328:2;12551:15;;;;12525:2;12510:18;;;12299:4;12594:169;12608:6;12605:1;12602:13;12594:169;;;12669:13;;12657:26;;12738:15;;;;12703:12;;;;12630:1;12623:9;12594:169;;;-1:-1:-1;12780:3:104;;12157:632;-1:-1:-1;;;;;;12157:632:104:o;12794:180::-;12853:6;12906:2;12894:9;12885:7;12881:23;12877:32;12874:52;;;12922:1;12919;12912:12;12874:52;-1:-1:-1;12945:23:104;;12794:180;-1:-1:-1;12794:180:104:o;12979:461::-;13038:3;13076:5;13070:12;13103:6;13098:3;13091:19;13129:4;13158:2;13153:3;13149:12;13142:19;;13195:2;13188:5;13184:14;13216:1;13226:189;13240:6;13237:1;13234:13;13226:189;;;13289:44;13329:3;13320:6;13314:13;13289:44;:::i;:::-;13362:4;13353:14;;;;;13390:15;;;;13262:1;13255:9;13226:189;;;-1:-1:-1;13431:3:104;;12979:461;-1:-1:-1;;;;;12979:461:104:o;13445:484::-;13498:3;13536:5;13530:12;13563:6;13558:3;13551:19;13589:4;13618:2;13613:3;13609:12;13602:19;;13655:2;13648:5;13644:14;13676:1;13686:218;13700:6;13697:1;13694:13;13686:218;;;13765:13;;-1:-1:-1;;;;;13761:62:104;13749:75;;13844:12;;;;13879:15;;;;13722:1;13715:9;13686:218;;13934:1245;13998:3;14036:5;14030:12;14063:6;14058:3;14051:19;14089:4;14118:2;14113:3;14109:12;14102:19;;14143:3;14183:6;14180:1;14176:14;14171:3;14167:24;14225:2;14218:5;14214:14;14246:1;14256:897;14270:6;14267:1;14264:13;14256:897;;;14341:5;14335:4;14331:16;14326:3;14319:29;14377:6;14371:13;14407:4;14450:2;14444:9;14479:2;14473:4;14466:16;14509:57;14562:2;14556:4;14552:13;14538:12;14509:57;:::i;:::-;14495:71;;14615:2;14611;14607:11;14601:18;14579:40;;14666:4;14658:6;14654:17;14649:2;14643:4;14639:13;14632:40;14695:4;14733:14;14727:21;14719:6;14712:37;14810:2;14794:14;14790:23;14784:30;14827:57;14880:2;14872:6;14868:15;14852:14;14827:57;:::i;:::-;;14945:2;14929:14;14925:23;14919:30;14897:52;;14988:2;14981:4;14973:6;14969:17;14962:29;15012:61;15069:2;15061:6;15057:15;15041:14;15012:61;:::i;:::-;15131:12;;;;15004:69;-1:-1:-1;;;15096:15:104;;;;-1:-1:-1;;14292:1:104;14285:9;14256:897;;15280:1317;15457:2;15446:9;15439:21;15502:6;15496:13;15491:2;15480:9;15476:18;15469:41;15564:2;15556:6;15552:15;15546:22;15541:2;15530:9;15526:18;15519:50;15623:2;15615:6;15611:15;15605:22;15600:2;15589:9;15585:18;15578:50;15683:2;15675:6;15671:15;15665:22;15659:3;15648:9;15644:19;15637:51;15420:4;15735:3;15727:6;15723:16;15717:23;15777:6;15771:3;15760:9;15756:19;15749:35;15807:69;15871:3;15860:9;15856:19;15842:12;15807:69;:::i;:::-;15793:83;;15925:3;15917:6;15913:16;15907:23;15953:2;15949:7;16021:2;16009:9;16001:6;15997:22;15993:31;15987:3;15976:9;15972:19;15965:60;16048:52;16093:6;16077:14;16048:52;:::i;:::-;16034:66;;16149:3;16141:6;16137:16;16131:23;16109:45;;16219:2;16207:9;16199:6;16195:22;16191:31;16185:3;16174:9;16170:19;16163:60;;16246:63;16302:6;16286:14;16246:63;:::i;:::-;16232:77;;;16358:3;16350:6;16346:16;16340:23;16382:3;16394:51;16441:2;16430:9;16426:18;16410:14;15254:13;15247:21;15235:34;;15184:91;16394:51;16482:15;;16476:22;;-1:-1:-1;16507:61:104;16563:3;16548:19;;16476:22;16507:61;:::i;17216:127::-;17277:10;17272:3;17268:20;17265:1;17258:31;17308:4;17305:1;17298:15;17332:4;17329:1;17322:15;17348:128;17415:9;;;17436:11;;;17433:37;;;17450:18;;:::i;17481:408::-;17683:2;17665:21;;;17722:2;17702:18;;;17695:30;17761:34;17756:2;17741:18;;17734:62;-1:-1:-1;;;17827:2:104;17812:18;;17805:42;17879:3;17864:19;;17481:408::o;17894:::-;18096:2;18078:21;;;18135:2;18115:18;;;18108:30;18174:34;18169:2;18154:18;;18147:62;-1:-1:-1;;;18240:2:104;18225:18;;18218:42;18292:3;18277:19;;17894:408::o;18307:135::-;18346:3;18367:17;;;18364:43;;18387:18;;:::i;:::-;-1:-1:-1;18434:1:104;18423:13;;18307:135::o;18447:251::-;18517:6;18570:2;18558:9;18549:7;18545:23;18541:32;18538:52;;;18586:1;18583;18576:12;18538:52;18618:9;18612:16;18637:31;18662:5;18637:31;:::i;19027:127::-;19088:10;19083:3;19079:20;19076:1;19069:31;19119:4;19116:1;19109:15;19143:4;19140:1;19133:15;19886:125;19951:9;;;19972:10;;;19969:36;;;19985:18;;:::i;20423:407::-;20625:2;20607:21;;;20664:2;20644:18;;;20637:30;20703:34;20698:2;20683:18;;20676:62;-1:-1:-1;;;20769:2:104;20754:18;;20747:41;20820:3;20805:19;;20423:407::o;20835:184::-;20905:6;20958:2;20946:9;20937:7;20933:23;20929:32;20926:52;;;20974:1;20971;20964:12;20926:52;-1:-1:-1;20997:16:104;;20835:184;-1:-1:-1;20835:184:104:o;22624:245::-;22691:6;22744:2;22732:9;22723:7;22719:23;22715:32;22712:52;;;22760:1;22757;22750:12;22712:52;22792:9;22786:16;22811:28;22833:5;22811:28;:::i;23285:250::-;23370:1;23380:113;23394:6;23391:1;23388:13;23380:113;;;23470:11;;;23464:18;23451:11;;;23444:39;23416:2;23409:10;23380:113;;;-1:-1:-1;;23527:1:104;23509:16;;23502:27;23285:250::o;23540:287::-;23669:3;23707:6;23701:13;23723:66;23782:6;23777:3;23770:4;23762:6;23758:17;23723:66;:::i;:::-;23805:16;;;;;23540:287;-1:-1:-1;;23540:287:104:o;24597:396::-;24746:2;24735:9;24728:21;24709:4;24778:6;24772:13;24821:6;24816:2;24805:9;24801:18;24794:34;24837:79;24909:6;24904:2;24893:9;24889:18;24884:2;24876:6;24872:15;24837:79;:::i;:::-;24977:2;24956:15;-1:-1:-1;;24952:29:104;24937:45;;;;24984:2;24933:54;;24597:396;-1:-1:-1;;24597:396:104:o","linkReferences":{},"immutableReferences":{"49420":[{"start":1644,"length":32},{"start":1708,"length":32},{"start":3016,"length":32},{"start":3080,"length":32},{"start":3227,"length":32}]}},"methodIdentifiers":{"addReward(address[],uint256,uint256)":"914eb34d","getBelongingGroup(address)":"3b6c00b0","getGroup(uint256)":"ceb60654","getGroupCount()":"06545a93","getGroupEpoch()":"7ee49cfd","getGroupThreshold(uint256)":"f49e0ba9","getLastOutput()":"51a2b9a0","getMember(uint256,uint256)":"4d79a893","getNodeWithdrawableTokens(address)":"227d0f46","getValidGroupIndices()":"b330a0fd","initialize(address,address,uint256)":"1794bb3c","nodeWithdraw(address)":"4ecea80d","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","setAdapterContractAddress(address)":"4897a730","setChainMessenger(address)":"53d615f8","setL2CrossDomainMessenger(address)":"4bc4447b","setLastOutput(uint256)":"f3df0802","transferOwnership(address)":"f2fde38b","updateGroup(address,(uint256,uint256,uint256,uint256,(address,uint256[4])[],address[],(address[],(uint256,uint256[4],address[]))[],bool,uint256[4]))":"49b08896","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"relayedGroupEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentGroupEpoch\",\"type\":\"uint256\"}],\"name\":\"GroupObsolete\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotAdapter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotChainMessenger\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"groupEpoch\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"committer\",\"type\":\"address\"}],\"name\":\"GroupUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"arpaAmount\",\"type\":\"uint256\"}],\"name\":\"NodeRewarded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"arpaAmount\",\"type\":\"uint256\"}],\"name\":\"addReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getBelongingGroup\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"}],\"name\":\"getGroup\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"nodeIdAddress\",\"type\":\"address\"},{\"internalType\":\"uint256[4]\",\"name\":\"partialPublicKey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct IControllerOracle.Member[]\",\"name\":\"members\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"committers\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"nodeIdAddress\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"publicKey\",\"type\":\"uint256[4]\"},{\"internalType\":\"address[]\",\"name\":\"disqualifiedNodes\",\"type\":\"address[]\"}],\"internalType\":\"struct IControllerOracle.CommitResult\",\"name\":\"commitResult\",\"type\":\"tuple\"}],\"internalType\":\"struct IControllerOracle.CommitCache[]\",\"name\":\"commitCacheList\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isStrictlyMajorityConsensusReached\",\"type\":\"bool\"},{\"internalType\":\"uint256[4]\",\"name\":\"publicKey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct IControllerOracle.Group\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGroupCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGroupEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"}],\"name\":\"getGroupThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"memberIndex\",\"type\":\"uint256\"}],\"name\":\"getMember\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"nodeIdAddress\",\"type\":\"address\"},{\"internalType\":\"uint256[4]\",\"name\":\"partialPublicKey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct IControllerOracle.Member\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getNodeWithdrawableTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidGroupIndices\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"arpa\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"l2CrossDomainMessenger\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lastOutput\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"nodeWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"adapterContractAddress\",\"type\":\"address\"}],\"name\":\"setAdapterContractAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"chainMessenger\",\"type\":\"address\"}],\"name\":\"setChainMessenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"l2CrossDomainMessenger\",\"type\":\"address\"}],\"name\":\"setL2CrossDomainMessenger\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lastOutput\",\"type\":\"uint256\"}],\"name\":\"setLastOutput\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"committer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"nodeIdAddress\",\"type\":\"address\"},{\"internalType\":\"uint256[4]\",\"name\":\"partialPublicKey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct IControllerOracle.Member[]\",\"name\":\"members\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"committers\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"nodeIdAddress\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"publicKey\",\"type\":\"uint256[4]\"},{\"internalType\":\"address[]\",\"name\":\"disqualifiedNodes\",\"type\":\"address[]\"}],\"internalType\":\"struct IControllerOracle.CommitResult\",\"name\":\"commitResult\",\"type\":\"tuple\"}],\"internalType\":\"struct IControllerOracle.CommitCache[]\",\"name\":\"commitCacheList\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isStrictlyMajorityConsensusReached\",\"type\":\"bool\"},{\"internalType\":\"uint256[4]\",\"name\":\"publicKey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct IControllerOracle.Group\",\"name\":\"group\",\"type\":\"tuple\"}],\"name\":\"updateGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getValidGroupIndices()\":{\"returns\":{\"_0\":\"uint256[] List of valid group indexes\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getBelongingGroup(address)\":{\"notice\":\"Get the group index and member index of a given node.\"},\"getValidGroupIndices()\":{\"notice\":\"Get list of all group indexes where group.isStrictlyMajorityConsensusReached == true\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/ControllerOracle.sol\":\"ControllerOracle\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":300},\"remappings\":[\":Randcast-User-Contract/=lib/Randcast-User-Contract/contracts/\",\":Staking-v0.1/=lib/Staking-v0.1/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":fx-portal/=lib/fx-portal/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0\",\"dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0\",\"dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f\",\"dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685\",\"dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"src/ControllerOracle.sol\":{\"keccak256\":\"0x9accdfdeba40b2a6814ac56d9d38621e92c96d523f4efa454aba59d93cd3ad3b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0509d08414847bb6ddefdcfea85cb25096b4f4ab10557ccfb6ef66ed16334ac3\",\"dweb:/ipfs/QmZxik3hAj3MYbcYUbhydrKPKQa39xrFQwpf4hbeDCrj7t\"]},\"src/interfaces/IAdapter.sol\":{\"keccak256\":\"0xceaa9cd449a635bc914340206fff76d90323507f8c474619774d9c57d546476e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63f0aee724f8341f7fd42e81585450091c50a6fd3d1e110161f35f9c91afd5c4\",\"dweb:/ipfs/QmNjqhTXGgxWzuCcCkGYw9LAxhmPvsGvdjkWCfBA6R4SbT\"]},\"src/interfaces/IControllerOracle.sol\":{\"keccak256\":\"0x8269cbcc8a394320ffed404a72a9f487f85b80719d38db09164a47b6aa353665\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e2b2291626595067fe4bae2dbe3fc7db4d1a42ab75d13027acfb8c696e52a19\",\"dweb:/ipfs/Qmb53ZTcMsUj3aUEmp6ugdtf8kT8UCa3jsfryamQFvezqY\"]},\"src/interfaces/IOPCrossDomainMessenger.sol\":{\"keccak256\":\"0x64be71512e7369b7bfd5357cc4d7e0d47b304e04eb91ac4f3da6c20a5e6418b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a8eb8ec4b44e969004d128362bcb5146182103264500b32158724ca71925410\",\"dweb:/ipfs/QmRnviqCV49Rd31YVxwf1i4BF8wRLKcjM4CBxNJkcrbEo4\"]},\"src/interfaces/IRequestTypeBase.sol\":{\"keccak256\":\"0x2deca9aac14fc3d57f9e51a8d2523fd775338ce0fda77706f282f0702bd1187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd348830ba48d81bf30d17cff28b4fb72b35be724d2933aa565d5bfd0b65452b\",\"dweb:/ipfs/QmRrTeHSoEdAJABvu96AxhuXJbZcvxiZL6Roxosp53XggY\"]},\"src/utils/Utils.sol\":{\"keccak256\":\"0xe05016ecdcd551da8ca90a10160324daa73b7f23737478bfba40df2ae24476c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b644c37646f88489512f0003b8c4eee497a25df6e9a8fa02870c6c89c85fbd01\",\"dweb:/ipfs/QmVeNDMUHDy5i7H1fsnBZoGm2g3jizYtxvihwMoi9TMwaK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.18+commit.87f61d96"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"groupIndex","type":"uint256"},{"internalType":"uint256","name":"relayedGroupEpoch","type":"uint256"},{"internalType":"uint256","name":"currentGroupEpoch","type":"uint256"}],"type":"error","name":"GroupObsolete"},{"inputs":[],"type":"error","name":"InvalidZeroAddress"},{"inputs":[],"type":"error","name":"SenderNotAdapter"},{"inputs":[],"type":"error","name":"SenderNotChainMessenger"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"groupIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"groupEpoch","type":"uint256","indexed":true},{"internalType":"address","name":"committer","type":"address","indexed":true}],"type":"event","name":"GroupUpdated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address","indexed":true},{"internalType":"uint256","name":"ethAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"arpaAmount","type":"uint256","indexed":false}],"type":"event","name":"NodeRewarded","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"address[]","name":"nodes","type":"address[]"},{"internalType":"uint256","name":"ethAmount","type":"uint256"},{"internalType":"uint256","name":"arpaAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addReward"},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getBelongingGroup","outputs":[{"internalType":"int256","name":"","type":"int256"},{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"groupIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"getGroup","outputs":[{"internalType":"struct IControllerOracle.Group","name":"","type":"tuple","components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"struct IControllerOracle.Member[]","name":"members","type":"tuple[]","components":[{"internalType":"address","name":"nodeIdAddress","type":"address"},{"internalType":"uint256[4]","name":"partialPublicKey","type":"uint256[4]"}]},{"internalType":"address[]","name":"committers","type":"address[]"},{"internalType":"struct IControllerOracle.CommitCache[]","name":"commitCacheList","type":"tuple[]","components":[{"internalType":"address[]","name":"nodeIdAddress","type":"address[]"},{"internalType":"struct IControllerOracle.CommitResult","name":"commitResult","type":"tuple","components":[{"internalType":"uint256","name":"groupEpoch","type":"uint256"},{"internalType":"uint256[4]","name":"publicKey","type":"uint256[4]"},{"internalType":"address[]","name":"disqualifiedNodes","type":"address[]"}]}]},{"internalType":"bool","name":"isStrictlyMajorityConsensusReached","type":"bool"},{"internalType":"uint256[4]","name":"publicKey","type":"uint256[4]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getGroupCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getGroupEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"groupIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"getGroupThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastOutput","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"groupIndex","type":"uint256"},{"internalType":"uint256","name":"memberIndex","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMember","outputs":[{"internalType":"struct IControllerOracle.Member","name":"","type":"tuple","components":[{"internalType":"address","name":"nodeIdAddress","type":"address"},{"internalType":"uint256[4]","name":"partialPublicKey","type":"uint256[4]"}]}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getNodeWithdrawableTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getValidGroupIndices","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"arpa","type":"address"},{"internalType":"address","name":"l2CrossDomainMessenger","type":"address"},{"internalType":"uint256","name":"lastOutput","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"nodeWithdraw"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"adapterContractAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAdapterContractAddress"},{"inputs":[{"internalType":"address","name":"chainMessenger","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setChainMessenger"},{"inputs":[{"internalType":"address","name":"l2CrossDomainMessenger","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setL2CrossDomainMessenger"},{"inputs":[{"internalType":"uint256","name":"lastOutput","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setLastOutput"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"committer","type":"address"},{"internalType":"struct IControllerOracle.Group","name":"group","type":"tuple","components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"struct IControllerOracle.Member[]","name":"members","type":"tuple[]","components":[{"internalType":"address","name":"nodeIdAddress","type":"address"},{"internalType":"uint256[4]","name":"partialPublicKey","type":"uint256[4]"}]},{"internalType":"address[]","name":"committers","type":"address[]"},{"internalType":"struct IControllerOracle.CommitCache[]","name":"commitCacheList","type":"tuple[]","components":[{"internalType":"address[]","name":"nodeIdAddress","type":"address[]"},{"internalType":"struct IControllerOracle.CommitResult","name":"commitResult","type":"tuple","components":[{"internalType":"uint256","name":"groupEpoch","type":"uint256"},{"internalType":"uint256[4]","name":"publicKey","type":"uint256[4]"},{"internalType":"address[]","name":"disqualifiedNodes","type":"address[]"}]}]},{"internalType":"bool","name":"isStrictlyMajorityConsensusReached","type":"bool"},{"internalType":"uint256[4]","name":"publicKey","type":"uint256[4]"}]}],"stateMutability":"nonpayable","type":"function","name":"updateGroup"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getValidGroupIndices()":{"returns":{"_0":"uint256[] List of valid group indexes"}},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeTo(address)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"getBelongingGroup(address)":{"notice":"Get the group index and member index of a given node."},"getValidGroupIndices()":{"notice":"Get list of all group indexes where group.isStrictlyMajorityConsensusReached == true"}},"version":1}},"settings":{"remappings":["Randcast-User-Contract/=lib/Randcast-User-Contract/contracts/","Staking-v0.1/=lib/Staking-v0.1/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","fx-portal/=lib/fx-portal/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":300},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/ControllerOracle.sol":"ControllerOracle"},"libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e","urls":["bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c","dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol":{"keccak256":"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b","urls":["bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0","dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol":{"keccak256":"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f","urls":["bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053","dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol":{"keccak256":"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8","urls":["bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0","dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol":{"keccak256":"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908","urls":["bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1","dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33","urls":["bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f","dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol":{"keccak256":"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908","urls":["bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685","dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"src/ControllerOracle.sol":{"keccak256":"0x9accdfdeba40b2a6814ac56d9d38621e92c96d523f4efa454aba59d93cd3ad3b","urls":["bzz-raw://0509d08414847bb6ddefdcfea85cb25096b4f4ab10557ccfb6ef66ed16334ac3","dweb:/ipfs/QmZxik3hAj3MYbcYUbhydrKPKQa39xrFQwpf4hbeDCrj7t"],"license":"MIT"},"src/interfaces/IAdapter.sol":{"keccak256":"0xceaa9cd449a635bc914340206fff76d90323507f8c474619774d9c57d546476e","urls":["bzz-raw://63f0aee724f8341f7fd42e81585450091c50a6fd3d1e110161f35f9c91afd5c4","dweb:/ipfs/QmNjqhTXGgxWzuCcCkGYw9LAxhmPvsGvdjkWCfBA6R4SbT"],"license":"MIT"},"src/interfaces/IControllerOracle.sol":{"keccak256":"0x8269cbcc8a394320ffed404a72a9f487f85b80719d38db09164a47b6aa353665","urls":["bzz-raw://4e2b2291626595067fe4bae2dbe3fc7db4d1a42ab75d13027acfb8c696e52a19","dweb:/ipfs/Qmb53ZTcMsUj3aUEmp6ugdtf8kT8UCa3jsfryamQFvezqY"],"license":"MIT"},"src/interfaces/IOPCrossDomainMessenger.sol":{"keccak256":"0x64be71512e7369b7bfd5357cc4d7e0d47b304e04eb91ac4f3da6c20a5e6418b3","urls":["bzz-raw://9a8eb8ec4b44e969004d128362bcb5146182103264500b32158724ca71925410","dweb:/ipfs/QmRnviqCV49Rd31YVxwf1i4BF8wRLKcjM4CBxNJkcrbEo4"],"license":"MIT"},"src/interfaces/IRequestTypeBase.sol":{"keccak256":"0x2deca9aac14fc3d57f9e51a8d2523fd775338ce0fda77706f282f0702bd1187b","urls":["bzz-raw://fd348830ba48d81bf30d17cff28b4fb72b35be724d2933aa565d5bfd0b65452b","dweb:/ipfs/QmRrTeHSoEdAJABvu96AxhuXJbZcvxiZL6Roxosp53XggY"],"license":"MIT"},"src/utils/Utils.sol":{"keccak256":"0xe05016ecdcd551da8ca90a10160324daa73b7f23737478bfba40df2ae24476c1","urls":["bzz-raw://b644c37646f88489512f0003b8c4eee497a25df6e9a8fa02870c6c89c85fbd01","dweb:/ipfs/QmVeNDMUHDy5i7H1fsnBZoGm2g3jizYtxvihwMoi9TMwaK"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/ControllerOracle.sol","id":60271,"exportedSymbols":{"ControllerOracle":[60270],"IAdapter":[62810],"IControllerOracle":[63334],"IERC20":[51351],"IOPCrossDomainMessenger":[63565],"OwnableUpgradeable":[48865],"SafeERC20":[51788],"UUPSUpgradeable":[49537],"Utils":[59396]},"nodeType":"SourceUnit","src":"32:9337:70","nodes":[{"id":59382,"nodeType":"PragmaDirective","src":"32:24:70","nodes":[],"literals":["solidity","^","0.8",".18"]},{"id":59385,"nodeType":"ImportDirective","src":"58:99:70","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":60271,"sourceUnit":51789,"symbolAliases":[{"foreign":{"id":59383,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51351,"src":"66:6:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":59384,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51788,"src":"74:9:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59387,"nodeType":"ImportDirective","src":"158:110:70","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":60271,"sourceUnit":48866,"symbolAliases":[{"foreign":{"id":59386,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48865,"src":"166:18:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59389,"nodeType":"ImportDirective","src":"269:109:70","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":60271,"sourceUnit":49538,"symbolAliases":[{"foreign":{"id":59388,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49537,"src":"277:15:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59391,"nodeType":"ImportDirective","src":"379:69:70","nodes":[],"absolutePath":"src/interfaces/IControllerOracle.sol","file":"./interfaces/IControllerOracle.sol","nameLocation":"-1:-1:-1","scope":60271,"sourceUnit":63335,"symbolAliases":[{"foreign":{"id":59390,"name":"IControllerOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63334,"src":"387:17:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59393,"nodeType":"ImportDirective","src":"449:81:70","nodes":[],"absolutePath":"src/interfaces/IOPCrossDomainMessenger.sol","file":"./interfaces/IOPCrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":60271,"sourceUnit":63566,"symbolAliases":[{"foreign":{"id":59392,"name":"IOPCrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63565,"src":"457:23:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59395,"nodeType":"ImportDirective","src":"531:51:70","nodes":[],"absolutePath":"src/interfaces/IAdapter.sol","file":"./interfaces/IAdapter.sol","nameLocation":"-1:-1:-1","scope":60271,"sourceUnit":62811,"symbolAliases":[{"foreign":{"id":59394,"name":"IAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62810,"src":"539:8:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59396,"nodeType":"ImportDirective","src":"629:36:70","nodes":[],"absolutePath":"src/utils/Utils.sol","file":"./utils/Utils.sol","nameLocation":"659:5:70","scope":60271,"sourceUnit":68676,"symbolAliases":[],"unitAlias":"Utils"},{"id":60270,"nodeType":"ContractDefinition","src":"667:8701:70","nodes":[{"id":59406,"nodeType":"UsingForDirective","src":"757:27:70","nodes":[],"global":false,"libraryName":{"id":59403,"name":"SafeERC20","nameLocations":["763:9:70"],"nodeType":"IdentifierPath","referencedDeclaration":51788,"src":"763:9:70"},"typeName":{"id":59405,"nodeType":"UserDefinedTypeName","pathNode":{"id":59404,"name":"IERC20","nameLocations":["777:6:70"],"nodeType":"IdentifierPath","referencedDeclaration":51351,"src":"777:6:70"},"referencedDeclaration":51351,"src":"777:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$51351","typeString":"contract IERC20"}}},{"id":59422,"nodeType":"StructDefinition","src":"790:262:70","nodes":[],"canonicalName":"ControllerOracle.GroupData","members":[{"constant":false,"id":59408,"mutability":"mutable","name":"epoch","nameLocation":"825:5:70","nodeType":"VariableDeclaration","scope":59422,"src":"817:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59407,"name":"uint256","nodeType":"ElementaryTypeName","src":"817:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59410,"mutability":"mutable","name":"groupCount","nameLocation":"848:10:70","nodeType":"VariableDeclaration","scope":59422,"src":"840:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59409,"name":"uint256","nodeType":"ElementaryTypeName","src":"840:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59415,"mutability":"mutable","name":"groups","nameLocation":"894:6:70","nodeType":"VariableDeclaration","scope":59422,"src":"868:32:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Group_$63201_storage_$","typeString":"mapping(uint256 => struct IControllerOracle.Group)"},"typeName":{"id":59414,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":59411,"name":"uint256","nodeType":"ElementaryTypeName","src":"876:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"868:25:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Group_$63201_storage_$","typeString":"mapping(uint256 => struct IControllerOracle.Group)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":59413,"nodeType":"UserDefinedTypeName","pathNode":{"id":59412,"name":"Group","nameLocations":["887:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":63201,"src":"887:5:70"},"referencedDeclaration":63201,"src":"887:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group"}}},"visibility":"internal"},{"constant":false,"id":59417,"mutability":"mutable","name":"idealNumberOfGroups","nameLocation":"949:19:70","nodeType":"VariableDeclaration","scope":59422,"src":"941:27:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59416,"name":"uint256","nodeType":"ElementaryTypeName","src":"941:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59419,"mutability":"mutable","name":"groupMaxCapacity","nameLocation":"986:16:70","nodeType":"VariableDeclaration","scope":59422,"src":"978:24:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59418,"name":"uint256","nodeType":"ElementaryTypeName","src":"978:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59421,"mutability":"mutable","name":"defaultNumberOfCommitters","nameLocation":"1020:25:70","nodeType":"VariableDeclaration","scope":59422,"src":"1012:33:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59420,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"GroupData","nameLocation":"797:9:70","scope":60270,"visibility":"public"},{"id":59425,"nodeType":"VariableDeclaration","src":"1077:41:70","nodes":[],"constant":true,"mutability":"constant","name":"_BALANCE_BASE","nameLocation":"1101:13:70","scope":60270,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":59423,"name":"uint16","nodeType":"ElementaryTypeName","src":"1077:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":59424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1117:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":59428,"nodeType":"VariableDeclaration","src":"1152:20:70","nodes":[],"constant":false,"mutability":"mutable","name":"_arpa","nameLocation":"1167:5:70","scope":60270,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$51351","typeString":"contract IERC20"},"typeName":{"id":59427,"nodeType":"UserDefinedTypeName","pathNode":{"id":59426,"name":"IERC20","nameLocations":["1152:6:70"],"nodeType":"IdentifierPath","referencedDeclaration":51351,"src":"1152:6:70"},"referencedDeclaration":51351,"src":"1152:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$51351","typeString":"contract IERC20"}},"visibility":"private"},{"id":59430,"nodeType":"VariableDeclaration","src":"1178:31:70","nodes":[],"constant":false,"mutability":"mutable","name":"_chainMessenger","nameLocation":"1194:15:70","scope":60270,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59429,"name":"address","nodeType":"ElementaryTypeName","src":"1178:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":59433,"nodeType":"VariableDeclaration","src":"1215:55:70","nodes":[],"constant":false,"mutability":"mutable","name":"_l2CrossDomainMessenger","nameLocation":"1247:23:70","scope":60270,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOPCrossDomainMessenger_$63565","typeString":"contract IOPCrossDomainMessenger"},"typeName":{"id":59432,"nodeType":"UserDefinedTypeName","pathNode":{"id":59431,"name":"IOPCrossDomainMessenger","nameLocations":["1215:23:70"],"nodeType":"IdentifierPath","referencedDeclaration":63565,"src":"1215:23:70"},"referencedDeclaration":63565,"src":"1215:23:70","typeDescriptions":{"typeIdentifier":"t_contract$_IOPCrossDomainMessenger_$63565","typeString":"contract IOPCrossDomainMessenger"}},"visibility":"private"},{"id":59435,"nodeType":"VariableDeclaration","src":"1276:39:70","nodes":[],"constant":false,"mutability":"mutable","name":"_adapterContractAddress","nameLocation":"1292:23:70","scope":60270,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59434,"name":"address","nodeType":"ElementaryTypeName","src":"1276:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":59439,"nodeType":"VariableDeclaration","src":"1352:53:70","nodes":[],"constant":false,"mutability":"mutable","name":"_withdrawableEths","nameLocation":"1388:17:70","scope":60270,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":59438,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":59436,"name":"address","nodeType":"ElementaryTypeName","src":"1360:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1352:27:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":59437,"name":"uint256","nodeType":"ElementaryTypeName","src":"1371:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":59443,"nodeType":"VariableDeclaration","src":"1459:48:70","nodes":[],"constant":false,"mutability":"mutable","name":"_arpaRewards","nameLocation":"1495:12:70","scope":60270,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":59442,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":59440,"name":"address","nodeType":"ElementaryTypeName","src":"1467:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1459:27:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":59441,"name":"uint256","nodeType":"ElementaryTypeName","src":"1478:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":59446,"nodeType":"VariableDeclaration","src":"1576:29:70","nodes":[],"constant":false,"mutability":"mutable","name":"_groupData","nameLocation":"1595:10:70","scope":60270,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData"},"typeName":{"id":59445,"nodeType":"UserDefinedTypeName","pathNode":{"id":59444,"name":"GroupData","nameLocations":["1576:9:70"],"nodeType":"IdentifierPath","referencedDeclaration":59422,"src":"1576:9:70"},"referencedDeclaration":59422,"src":"1576:9:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage_ptr","typeString":"struct ControllerOracle.GroupData"}},"visibility":"internal"},{"id":59448,"nodeType":"VariableDeclaration","src":"1636:27:70","nodes":[],"constant":false,"mutability":"mutable","name":"_lastOutput","nameLocation":"1652:11:70","scope":60270,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59447,"name":"uint256","nodeType":"ElementaryTypeName","src":"1636:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":59456,"nodeType":"EventDefinition","src":"1686:87:70","nodes":[],"anonymous":false,"eventSelector":"8353a804115421789f3ab2eeb3f5215943906ce12100c91d40fc865caf742b6f","name":"NodeRewarded","nameLocation":"1692:12:70","parameters":{"id":59455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59450,"indexed":true,"mutability":"mutable","name":"nodeAddress","nameLocation":"1721:11:70","nodeType":"VariableDeclaration","scope":59456,"src":"1705:27:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59449,"name":"address","nodeType":"ElementaryTypeName","src":"1705:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59452,"indexed":false,"mutability":"mutable","name":"ethAmount","nameLocation":"1742:9:70","nodeType":"VariableDeclaration","scope":59456,"src":"1734:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59451,"name":"uint256","nodeType":"ElementaryTypeName","src":"1734:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59454,"indexed":false,"mutability":"mutable","name":"arpaAmount","nameLocation":"1761:10:70","nodeType":"VariableDeclaration","scope":59456,"src":"1753:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59453,"name":"uint256","nodeType":"ElementaryTypeName","src":"1753:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1704:68:70"}},{"id":59466,"nodeType":"EventDefinition","src":"1778:131:70","nodes":[],"anonymous":false,"eventSelector":"086df69ece965de938d49c9d0eca0f14e39b9d5b178e0358d27ef0fdde2672f8","name":"GroupUpdated","nameLocation":"1784:12:70","parameters":{"id":59465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59458,"indexed":false,"mutability":"mutable","name":"epoch","nameLocation":"1814:5:70","nodeType":"VariableDeclaration","scope":59466,"src":"1806:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59457,"name":"uint256","nodeType":"ElementaryTypeName","src":"1806:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59460,"indexed":true,"mutability":"mutable","name":"groupIndex","nameLocation":"1837:10:70","nodeType":"VariableDeclaration","scope":59466,"src":"1821:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59459,"name":"uint256","nodeType":"ElementaryTypeName","src":"1821:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59462,"indexed":true,"mutability":"mutable","name":"groupEpoch","nameLocation":"1865:10:70","nodeType":"VariableDeclaration","scope":59466,"src":"1849:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59461,"name":"uint256","nodeType":"ElementaryTypeName","src":"1849:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59464,"indexed":true,"mutability":"mutable","name":"committer","nameLocation":"1893:9:70","nodeType":"VariableDeclaration","scope":59466,"src":"1877:25:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59463,"name":"address","nodeType":"ElementaryTypeName","src":"1877:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1796:112:70"}},{"id":59474,"nodeType":"ErrorDefinition","src":"1931:94:70","nodes":[],"errorSelector":"699745e3","name":"GroupObsolete","nameLocation":"1937:13:70","parameters":{"id":59473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59468,"mutability":"mutable","name":"groupIndex","nameLocation":"1959:10:70","nodeType":"VariableDeclaration","scope":59474,"src":"1951:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59467,"name":"uint256","nodeType":"ElementaryTypeName","src":"1951:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59470,"mutability":"mutable","name":"relayedGroupEpoch","nameLocation":"1979:17:70","nodeType":"VariableDeclaration","scope":59474,"src":"1971:25:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59469,"name":"uint256","nodeType":"ElementaryTypeName","src":"1971:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59472,"mutability":"mutable","name":"currentGroupEpoch","nameLocation":"2006:17:70","nodeType":"VariableDeclaration","scope":59474,"src":"1998:25:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59471,"name":"uint256","nodeType":"ElementaryTypeName","src":"1998:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1950:74:70"}},{"id":59476,"nodeType":"ErrorDefinition","src":"2030:25:70","nodes":[],"errorSelector":"469666c5","name":"SenderNotAdapter","nameLocation":"2036:16:70","parameters":{"id":59475,"nodeType":"ParameterList","parameters":[],"src":"2052:2:70"}},{"id":59478,"nodeType":"ErrorDefinition","src":"2060:32:70","nodes":[],"errorSelector":"5d35a688","name":"SenderNotChainMessenger","nameLocation":"2066:23:70","parameters":{"id":59477,"nodeType":"ParameterList","parameters":[],"src":"2089:2:70"}},{"id":59480,"nodeType":"ErrorDefinition","src":"2097:27:70","nodes":[],"errorSelector":"f6b2911f","name":"InvalidZeroAddress","nameLocation":"2103:18:70","parameters":{"id":59479,"nodeType":"ParameterList","parameters":[],"src":"2121:2:70"}},{"id":59488,"nodeType":"FunctionDefinition","src":"2183:53:70","nodes":[],"body":{"id":59487,"nodeType":"Block","src":"2197:39:70","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":59484,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49381,"src":"2207:20:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":59485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2207:22:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59486,"nodeType":"ExpressionStatement","src":"2207:22:70"}]},"documentation":{"id":59481,"nodeType":"StructuredDocumentation","src":"2130:48:70","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":59482,"nodeType":"ParameterList","parameters":[],"src":"2194:2:70"},"returnParameters":{"id":59483,"nodeType":"ParameterList","parameters":[],"src":"2197:0:70"},"scope":60270,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59497,"nodeType":"FunctionDefinition","src":"2291:66:70","nodes":[],"body":{"id":59496,"nodeType":"Block","src":"2355:2:70","nodes":[],"statements":[]},"baseFunctions":[49531],"implemented":true,"kind":"function","modifiers":[{"id":59494,"kind":"modifierInvocation","modifierName":{"id":59493,"name":"onlyOwner","nameLocations":["2345:9:70"],"nodeType":"IdentifierPath","referencedDeclaration":48779,"src":"2345:9:70"},"nodeType":"ModifierInvocation","src":"2345:9:70"}],"name":"_authorizeUpgrade","nameLocation":"2300:17:70","overrides":{"id":59492,"nodeType":"OverrideSpecifier","overrides":[],"src":"2336:8:70"},"parameters":{"id":59491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59490,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":59497,"src":"2318:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59489,"name":"address","nodeType":"ElementaryTypeName","src":"2318:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2317:9:70"},"returnParameters":{"id":59495,"nodeType":"ParameterList","parameters":[],"src":"2355:0:70"},"scope":60270,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":59528,"nodeType":"FunctionDefinition","src":"2363:286:70","nodes":[],"body":{"id":59527,"nodeType":"Block","src":"2468:181:70","nodes":[],"statements":[{"expression":{"id":59512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59508,"name":"_arpa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59428,"src":"2478:5:70","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$51351","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":59510,"name":"arpa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59499,"src":"2493:4:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59509,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51351,"src":"2486:6:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$51351_$","typeString":"type(contract IERC20)"}},"id":59511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2486:12:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$51351","typeString":"contract IERC20"}},"src":"2478:20:70","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$51351","typeString":"contract IERC20"}},"id":59513,"nodeType":"ExpressionStatement","src":"2478:20:70"},{"expression":{"id":59518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59514,"name":"_l2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59433,"src":"2508:23:70","typeDescriptions":{"typeIdentifier":"t_contract$_IOPCrossDomainMessenger_$63565","typeString":"contract IOPCrossDomainMessenger"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":59516,"name":"l2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59501,"src":"2558:22:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59515,"name":"IOPCrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63565,"src":"2534:23:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOPCrossDomainMessenger_$63565_$","typeString":"type(contract IOPCrossDomainMessenger)"}},"id":59517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2534:47:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOPCrossDomainMessenger_$63565","typeString":"contract IOPCrossDomainMessenger"}},"src":"2508:73:70","typeDescriptions":{"typeIdentifier":"t_contract$_IOPCrossDomainMessenger_$63565","typeString":"contract IOPCrossDomainMessenger"}},"id":59519,"nodeType":"ExpressionStatement","src":"2508:73:70"},{"expression":{"id":59522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59520,"name":"_lastOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59448,"src":"2591:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":59521,"name":"lastOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59503,"src":"2605:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2591:24:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59523,"nodeType":"ExpressionStatement","src":"2591:24:70"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":59524,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48760,"src":"2626:14:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":59525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2626:16:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59526,"nodeType":"ExpressionStatement","src":"2626:16:70"}]},"functionSelector":"1794bb3c","implemented":true,"kind":"function","modifiers":[{"id":59506,"kind":"modifierInvocation","modifierName":{"id":59505,"name":"initializer","nameLocations":["2456:11:70"],"nodeType":"IdentifierPath","referencedDeclaration":49302,"src":"2456:11:70"},"nodeType":"ModifierInvocation","src":"2456:11:70"}],"name":"initialize","nameLocation":"2372:10:70","parameters":{"id":59504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59499,"mutability":"mutable","name":"arpa","nameLocation":"2391:4:70","nodeType":"VariableDeclaration","scope":59528,"src":"2383:12:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59498,"name":"address","nodeType":"ElementaryTypeName","src":"2383:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59501,"mutability":"mutable","name":"l2CrossDomainMessenger","nameLocation":"2405:22:70","nodeType":"VariableDeclaration","scope":59528,"src":"2397:30:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59500,"name":"address","nodeType":"ElementaryTypeName","src":"2397:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59503,"mutability":"mutable","name":"lastOutput","nameLocation":"2437:10:70","nodeType":"VariableDeclaration","scope":59528,"src":"2429:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59502,"name":"uint256","nodeType":"ElementaryTypeName","src":"2429:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2382:66:70"},"returnParameters":{"id":59507,"nodeType":"ParameterList","parameters":[],"src":"2468:0:70"},"scope":60270,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59620,"nodeType":"FunctionDefinition","src":"2655:849:70","nodes":[],"body":{"id":59619,"nodeType":"Block","src":"2724:780:70","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":59555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":59540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":59536,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2751:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":59537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2755:6:70","memberName":"sender","nodeType":"MemberAccess","src":"2751:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":59538,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48788,"src":"2765:5:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":59539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2765:7:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2751:21:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":59553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":59547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":59541,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2814:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":59542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2818:6:70","memberName":"sender","nodeType":"MemberAccess","src":"2814:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":59545,"name":"_l2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59433,"src":"2836:23:70","typeDescriptions":{"typeIdentifier":"t_contract$_IOPCrossDomainMessenger_$63565","typeString":"contract IOPCrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IOPCrossDomainMessenger_$63565","typeString":"contract IOPCrossDomainMessenger"}],"id":59544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2828:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59543,"name":"address","nodeType":"ElementaryTypeName","src":"2828:7:70","typeDescriptions":{}}},"id":59546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2828:32:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2814:46:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":59552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59548,"name":"_l2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59433,"src":"2888:23:70","typeDescriptions":{"typeIdentifier":"t_contract$_IOPCrossDomainMessenger_$63565","typeString":"contract IOPCrossDomainMessenger"}},"id":59549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2912:20:70","memberName":"xDomainMessageSender","nodeType":"MemberAccess","referencedDeclaration":63564,"src":"2888:44:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":59550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2888:46:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":59551,"name":"_chainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59430,"src":"2938:15:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2888:65:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2814:139:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":59554,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2792:179:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2751:220:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59560,"nodeType":"IfStatement","src":"2734:305:70","trueBody":{"id":59559,"nodeType":"Block","src":"2982:57:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":59556,"name":"SenderNotChainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59478,"src":"3003:23:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":59557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3003:25:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59558,"nodeType":"RevertStatement","src":"2996:32:70"}]}},{"assignments":[59562],"declarations":[{"constant":false,"id":59562,"mutability":"mutable","name":"groupIndex","nameLocation":"3057:10:70","nodeType":"VariableDeclaration","scope":59619,"src":"3049:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59561,"name":"uint256","nodeType":"ElementaryTypeName","src":"3049:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":59565,"initialValue":{"expression":{"id":59563,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59533,"src":"3070:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":59564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3076:5:70","memberName":"index","nodeType":"MemberAccess","referencedDeclaration":63177,"src":"3070:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3049:32:70"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":59566,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59533,"src":"3096:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":59567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3102:5:70","memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":63179,"src":"3096:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"baseExpression":{"expression":{"id":59568,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"3111:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3122:6:70","memberName":"groups","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"3111:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Group_$63201_storage_$","typeString":"mapping(uint256 => struct IControllerOracle.Group storage ref)"}},"id":59571,"indexExpression":{"id":59570,"name":"groupIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59562,"src":"3129:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3111:29:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage","typeString":"struct IControllerOracle.Group storage ref"}},"id":59572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3141:5:70","memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":63179,"src":"3111:35:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3096:50:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59586,"nodeType":"IfStatement","src":"3092:163:70","trueBody":{"id":59585,"nodeType":"Block","src":"3148:107:70","statements":[{"errorCall":{"arguments":[{"id":59575,"name":"groupIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59562,"src":"3183:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":59576,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59533,"src":"3195:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":59577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3201:5:70","memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":63179,"src":"3195:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"id":59578,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"3208:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3219:6:70","memberName":"groups","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"3208:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Group_$63201_storage_$","typeString":"mapping(uint256 => struct IControllerOracle.Group storage ref)"}},"id":59581,"indexExpression":{"id":59580,"name":"groupIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59562,"src":"3226:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3208:29:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage","typeString":"struct IControllerOracle.Group storage ref"}},"id":59582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3238:5:70","memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":63179,"src":"3208:35:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59574,"name":"GroupObsolete","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59474,"src":"3169:13:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":59583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3169:75:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59584,"nodeType":"RevertStatement","src":"3162:82:70"}]}},{"expression":{"id":59590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3265:18:70","subExpression":{"expression":{"id":59587,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"3265:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3276:5:70","memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":59408,"src":"3265:16:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59591,"nodeType":"ExpressionStatement","src":"3265:18:70"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":59592,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"3298:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3309:6:70","memberName":"groups","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"3298:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Group_$63201_storage_$","typeString":"mapping(uint256 => struct IControllerOracle.Group storage ref)"}},"id":59595,"indexExpression":{"id":59594,"name":"groupIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59562,"src":"3316:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3298:29:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage","typeString":"struct IControllerOracle.Group storage ref"}},"id":59596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3328:5:70","memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":63179,"src":"3298:35:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":59597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3337:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3298:40:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59605,"nodeType":"IfStatement","src":"3294:94:70","trueBody":{"id":59604,"nodeType":"Block","src":"3340:48:70","statements":[{"expression":{"id":59602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3354:23:70","subExpression":{"expression":{"id":59599,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"3354:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3365:10:70","memberName":"groupCount","nodeType":"MemberAccess","referencedDeclaration":59410,"src":"3354:21:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59603,"nodeType":"ExpressionStatement","src":"3354:23:70"}]}},{"expression":{"arguments":[{"id":59607,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59533,"src":"3409:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}],"id":59606,"name":"_copyGroup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60220,"src":"3398:10:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Group_$63201_memory_ptr_$returns$__$","typeString":"function (struct IControllerOracle.Group memory)"}},"id":59608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3398:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59609,"nodeType":"ExpressionStatement","src":"3398:17:70"},{"eventCall":{"arguments":[{"expression":{"id":59611,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"3444:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3455:5:70","memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":59408,"src":"3444:16:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59613,"name":"groupIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59562,"src":"3462:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":59614,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59533,"src":"3474:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":59615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3480:5:70","memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":63179,"src":"3474:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59616,"name":"committer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59530,"src":"3487:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59610,"name":"GroupUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59466,"src":"3431:12:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,uint256,uint256,address)"}},"id":59617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3431:66:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59618,"nodeType":"EmitStatement","src":"3426:71:70"}]},"baseFunctions":[63245],"functionSelector":"49b08896","implemented":true,"kind":"function","modifiers":[],"name":"updateGroup","nameLocation":"2664:11:70","parameters":{"id":59534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59530,"mutability":"mutable","name":"committer","nameLocation":"2684:9:70","nodeType":"VariableDeclaration","scope":59620,"src":"2676:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59529,"name":"address","nodeType":"ElementaryTypeName","src":"2676:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59533,"mutability":"mutable","name":"group","nameLocation":"2708:5:70","nodeType":"VariableDeclaration","scope":59620,"src":"2695:18:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group"},"typeName":{"id":59532,"nodeType":"UserDefinedTypeName","pathNode":{"id":59531,"name":"Group","nameLocations":["2695:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":63201,"src":"2695:5:70"},"referencedDeclaration":63201,"src":"2695:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group"}},"visibility":"internal"}],"src":"2675:39:70"},"returnParameters":{"id":59535,"nodeType":"ParameterList","parameters":[],"src":"2724:0:70"},"scope":60270,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":59643,"nodeType":"FunctionDefinition","src":"3510:214:70","nodes":[],"body":{"id":59642,"nodeType":"Block","src":"3580:144:70","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":59632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59627,"name":"chainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59622,"src":"3594:14:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":59630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3620:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":59629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3612:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59628,"name":"address","nodeType":"ElementaryTypeName","src":"3612:7:70","typeDescriptions":{}}},"id":59631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3612:10:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3594:28:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59637,"nodeType":"IfStatement","src":"3590:86:70","trueBody":{"id":59636,"nodeType":"Block","src":"3624:52:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":59633,"name":"InvalidZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59480,"src":"3645:18:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":59634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3645:20:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59635,"nodeType":"RevertStatement","src":"3638:27:70"}]}},{"expression":{"id":59640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59638,"name":"_chainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59430,"src":"3685:15:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":59639,"name":"chainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59622,"src":"3703:14:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3685:32:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":59641,"nodeType":"ExpressionStatement","src":"3685:32:70"}]},"functionSelector":"53d615f8","implemented":true,"kind":"function","modifiers":[{"id":59625,"kind":"modifierInvocation","modifierName":{"id":59624,"name":"onlyOwner","nameLocations":["3570:9:70"],"nodeType":"IdentifierPath","referencedDeclaration":48779,"src":"3570:9:70"},"nodeType":"ModifierInvocation","src":"3570:9:70"}],"name":"setChainMessenger","nameLocation":"3519:17:70","parameters":{"id":59623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59622,"mutability":"mutable","name":"chainMessenger","nameLocation":"3545:14:70","nodeType":"VariableDeclaration","scope":59643,"src":"3537:22:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59621,"name":"address","nodeType":"ElementaryTypeName","src":"3537:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3536:24:70"},"returnParameters":{"id":59626,"nodeType":"ParameterList","parameters":[],"src":"3580:0:70"},"scope":60270,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":59668,"nodeType":"FunctionDefinition","src":"3730:279:70","nodes":[],"body":{"id":59667,"nodeType":"Block","src":"3816:193:70","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":59655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59650,"name":"l2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59645,"src":"3830:22:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":59653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3864:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":59652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3856:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59651,"name":"address","nodeType":"ElementaryTypeName","src":"3856:7:70","typeDescriptions":{}}},"id":59654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3856:10:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3830:36:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59660,"nodeType":"IfStatement","src":"3826:94:70","trueBody":{"id":59659,"nodeType":"Block","src":"3868:52:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":59656,"name":"InvalidZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59480,"src":"3889:18:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":59657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3889:20:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59658,"nodeType":"RevertStatement","src":"3882:27:70"}]}},{"expression":{"id":59665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59661,"name":"_l2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59433,"src":"3929:23:70","typeDescriptions":{"typeIdentifier":"t_contract$_IOPCrossDomainMessenger_$63565","typeString":"contract IOPCrossDomainMessenger"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":59663,"name":"l2CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59645,"src":"3979:22:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59662,"name":"IOPCrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63565,"src":"3955:23:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOPCrossDomainMessenger_$63565_$","typeString":"type(contract IOPCrossDomainMessenger)"}},"id":59664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3955:47:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOPCrossDomainMessenger_$63565","typeString":"contract IOPCrossDomainMessenger"}},"src":"3929:73:70","typeDescriptions":{"typeIdentifier":"t_contract$_IOPCrossDomainMessenger_$63565","typeString":"contract IOPCrossDomainMessenger"}},"id":59666,"nodeType":"ExpressionStatement","src":"3929:73:70"}]},"functionSelector":"4bc4447b","implemented":true,"kind":"function","modifiers":[{"id":59648,"kind":"modifierInvocation","modifierName":{"id":59647,"name":"onlyOwner","nameLocations":["3806:9:70"],"nodeType":"IdentifierPath","referencedDeclaration":48779,"src":"3806:9:70"},"nodeType":"ModifierInvocation","src":"3806:9:70"}],"name":"setL2CrossDomainMessenger","nameLocation":"3739:25:70","parameters":{"id":59646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59645,"mutability":"mutable","name":"l2CrossDomainMessenger","nameLocation":"3773:22:70","nodeType":"VariableDeclaration","scope":59668,"src":"3765:30:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59644,"name":"address","nodeType":"ElementaryTypeName","src":"3765:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3764:32:70"},"returnParameters":{"id":59649,"nodeType":"ParameterList","parameters":[],"src":"3816:0:70"},"scope":60270,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":59691,"nodeType":"FunctionDefinition","src":"4015:254:70","nodes":[],"body":{"id":59690,"nodeType":"Block","src":"4101:168:70","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":59680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59675,"name":"adapterContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59670,"src":"4115:22:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":59678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4149:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":59677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4141:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59676,"name":"address","nodeType":"ElementaryTypeName","src":"4141:7:70","typeDescriptions":{}}},"id":59679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4141:10:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4115:36:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59685,"nodeType":"IfStatement","src":"4111:94:70","trueBody":{"id":59684,"nodeType":"Block","src":"4153:52:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":59681,"name":"InvalidZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59480,"src":"4174:18:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":59682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4174:20:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59683,"nodeType":"RevertStatement","src":"4167:27:70"}]}},{"expression":{"id":59688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59686,"name":"_adapterContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59435,"src":"4214:23:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":59687,"name":"adapterContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59670,"src":"4240:22:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4214:48:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":59689,"nodeType":"ExpressionStatement","src":"4214:48:70"}]},"functionSelector":"4897a730","implemented":true,"kind":"function","modifiers":[{"id":59673,"kind":"modifierInvocation","modifierName":{"id":59672,"name":"onlyOwner","nameLocations":["4091:9:70"],"nodeType":"IdentifierPath","referencedDeclaration":48779,"src":"4091:9:70"},"nodeType":"ModifierInvocation","src":"4091:9:70"}],"name":"setAdapterContractAddress","nameLocation":"4024:25:70","parameters":{"id":59671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59670,"mutability":"mutable","name":"adapterContractAddress","nameLocation":"4058:22:70","nodeType":"VariableDeclaration","scope":59691,"src":"4050:30:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59669,"name":"address","nodeType":"ElementaryTypeName","src":"4050:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4049:32:70"},"returnParameters":{"id":59674,"nodeType":"ParameterList","parameters":[],"src":"4101:0:70"},"scope":60270,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":59767,"nodeType":"FunctionDefinition","src":"4275:677:70","nodes":[],"body":{"id":59766,"nodeType":"Block","src":"4353:599:70","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":59703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59698,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59693,"src":"4367:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":59701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4388:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":59700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4380:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59699,"name":"address","nodeType":"ElementaryTypeName","src":"4380:7:70","typeDescriptions":{}}},"id":59702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4380:10:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4367:23:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59708,"nodeType":"IfStatement","src":"4363:81:70","trueBody":{"id":59707,"nodeType":"Block","src":"4392:52:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":59704,"name":"InvalidZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59480,"src":"4413:18:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":59705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4413:20:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59706,"nodeType":"RevertStatement","src":"4406:27:70"}]}},{"assignments":[59710],"declarations":[{"constant":false,"id":59710,"mutability":"mutable","name":"ethAmount","nameLocation":"4461:9:70","nodeType":"VariableDeclaration","scope":59766,"src":"4453:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59709,"name":"uint256","nodeType":"ElementaryTypeName","src":"4453:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":59715,"initialValue":{"baseExpression":{"id":59711,"name":"_withdrawableEths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59439,"src":"4473:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":59714,"indexExpression":{"expression":{"id":59712,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4491:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":59713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4495:6:70","memberName":"sender","nodeType":"MemberAccess","src":"4491:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4473:29:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4453:49:70"},{"assignments":[59717],"declarations":[{"constant":false,"id":59717,"mutability":"mutable","name":"arpaAmount","nameLocation":"4520:10:70","nodeType":"VariableDeclaration","scope":59766,"src":"4512:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59716,"name":"uint256","nodeType":"ElementaryTypeName","src":"4512:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":59722,"initialValue":{"baseExpression":{"id":59718,"name":"_arpaRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59443,"src":"4533:12:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":59721,"indexExpression":{"expression":{"id":59719,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4546:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":59720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4550:6:70","memberName":"sender","nodeType":"MemberAccess","src":"4546:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4533:24:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4512:45:70"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59723,"name":"arpaAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59717,"src":"4571:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":59724,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59425,"src":"4584:13:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4571:26:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59743,"nodeType":"IfStatement","src":"4567:168:70","trueBody":{"id":59742,"nodeType":"Block","src":"4599:136:70","statements":[{"expression":{"id":59731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":59726,"name":"_arpaRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59443,"src":"4613:12:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":59729,"indexExpression":{"expression":{"id":59727,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4626:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":59728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4630:6:70","memberName":"sender","nodeType":"MemberAccess","src":"4626:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4613:24:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":59730,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59425,"src":"4640:13:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4613:40:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59732,"nodeType":"ExpressionStatement","src":"4613:40:70"},{"expression":{"arguments":[{"id":59736,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59693,"src":"4686:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59737,"name":"arpaAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59717,"src":"4697:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":59738,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59425,"src":"4710:13:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4697:26:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59733,"name":"_arpa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59428,"src":"4667:5:70","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$51351","typeString":"contract IERC20"}},"id":59735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4673:12:70","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":51445,"src":"4667:18:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$51351_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$51351_$","typeString":"function (contract IERC20,address,uint256)"}},"id":59740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4667:57:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59741,"nodeType":"ExpressionStatement","src":"4667:57:70"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59744,"name":"ethAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59710,"src":"4748:9:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":59745,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59425,"src":"4760:13:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4748:25:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59765,"nodeType":"IfStatement","src":"4744:202:70","trueBody":{"id":59764,"nodeType":"Block","src":"4775:171:70","statements":[{"expression":{"id":59752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":59747,"name":"_withdrawableEths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59439,"src":"4789:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":59750,"indexExpression":{"expression":{"id":59748,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4807:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":59749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4811:6:70","memberName":"sender","nodeType":"MemberAccess","src":"4807:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4789:29:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":59751,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59425,"src":"4821:13:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4789:45:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59753,"nodeType":"ExpressionStatement","src":"4789:45:70"},{"expression":{"arguments":[{"id":59758,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59693,"src":"4898:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59759,"name":"ethAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59710,"src":"4909:9:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":59760,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59425,"src":"4921:13:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4909:25:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":59755,"name":"_adapterContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59435,"src":"4857:23:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59754,"name":"IAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62810,"src":"4848:8:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAdapter_$62810_$","typeString":"type(contract IAdapter)"}},"id":59756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4848:33:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$62810","typeString":"contract IAdapter"}},"id":59757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4882:15:70","memberName":"nodeWithdrawETH","nodeType":"MemberAccess","referencedDeclaration":62590,"src":"4848:49:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":59762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4848:87:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59763,"nodeType":"ExpressionStatement","src":"4848:87:70"}]}}]},"baseFunctions":[63250],"functionSelector":"4ecea80d","implemented":true,"kind":"function","modifiers":[],"name":"nodeWithdraw","nameLocation":"4284:12:70","overrides":{"id":59696,"nodeType":"OverrideSpecifier","overrides":[{"id":59695,"name":"IControllerOracle","nameLocations":["4334:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":63334,"src":"4334:17:70"}],"src":"4325:27:70"},"parameters":{"id":59694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59693,"mutability":"mutable","name":"recipient","nameLocation":"4305:9:70","nodeType":"VariableDeclaration","scope":59767,"src":"4297:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59692,"name":"address","nodeType":"ElementaryTypeName","src":"4297:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4296:19:70"},"returnParameters":{"id":59697,"nodeType":"ParameterList","parameters":[],"src":"4353:0:70"},"scope":60270,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":59826,"nodeType":"FunctionDefinition","src":"4958:477:70","nodes":[],"body":{"id":59825,"nodeType":"Block","src":"5095:340:70","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":59782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":59779,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5109:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":59780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5113:6:70","memberName":"sender","nodeType":"MemberAccess","src":"5109:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":59781,"name":"_adapterContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59435,"src":"5123:23:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5109:37:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59787,"nodeType":"IfStatement","src":"5105:93:70","trueBody":{"id":59786,"nodeType":"Block","src":"5148:50:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":59783,"name":"SenderNotAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59476,"src":"5169:16:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":59784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5169:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59785,"nodeType":"RevertStatement","src":"5162:25:70"}]}},{"body":{"id":59823,"nodeType":"Block","src":"5250:179:70","statements":[{"expression":{"id":59805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":59799,"name":"_withdrawableEths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59439,"src":"5264:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":59803,"indexExpression":{"baseExpression":{"id":59800,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59770,"src":"5282:5:70","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":59802,"indexExpression":{"id":59801,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59789,"src":"5288:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5282:8:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5264:27:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":59804,"name":"ethAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59772,"src":"5295:9:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5264:40:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59806,"nodeType":"ExpressionStatement","src":"5264:40:70"},{"expression":{"id":59813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":59807,"name":"_arpaRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59443,"src":"5318:12:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":59811,"indexExpression":{"baseExpression":{"id":59808,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59770,"src":"5331:5:70","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":59810,"indexExpression":{"id":59809,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59789,"src":"5337:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5331:8:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5318:22:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":59812,"name":"arpaAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59774,"src":"5344:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5318:36:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59814,"nodeType":"ExpressionStatement","src":"5318:36:70"},{"eventCall":{"arguments":[{"baseExpression":{"id":59816,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59770,"src":"5386:5:70","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":59818,"indexExpression":{"id":59817,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59789,"src":"5392:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5386:8:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59819,"name":"ethAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59772,"src":"5396:9:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59820,"name":"arpaAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59774,"src":"5407:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59815,"name":"NodeRewarded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59456,"src":"5373:12:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":59821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5373:45:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59822,"nodeType":"EmitStatement","src":"5368:50:70"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59792,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59789,"src":"5227:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":59793,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59770,"src":"5231:5:70","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":59794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5237:6:70","memberName":"length","nodeType":"MemberAccess","src":"5231:12:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5227:16:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59824,"initializationExpression":{"assignments":[59789],"declarations":[{"constant":false,"id":59789,"mutability":"mutable","name":"i","nameLocation":"5220:1:70","nodeType":"VariableDeclaration","scope":59824,"src":"5212:9:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59788,"name":"uint256","nodeType":"ElementaryTypeName","src":"5212:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":59791,"initialValue":{"hexValue":"30","id":59790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5224:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5212:13:70"},"loopExpression":{"expression":{"id":59797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5245:3:70","subExpression":{"id":59796,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59789,"src":"5245:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59798,"nodeType":"ExpressionStatement","src":"5245:3:70"},"nodeType":"ForStatement","src":"5207:222:70"}]},"baseFunctions":[63260],"functionSelector":"914eb34d","implemented":true,"kind":"function","modifiers":[],"name":"addReward","nameLocation":"4967:9:70","overrides":{"id":59777,"nodeType":"OverrideSpecifier","overrides":[{"id":59776,"name":"IControllerOracle","nameLocations":["5072:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":63334,"src":"5072:17:70"}],"src":"5063:27:70"},"parameters":{"id":59775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59770,"mutability":"mutable","name":"nodes","nameLocation":"4994:5:70","nodeType":"VariableDeclaration","scope":59826,"src":"4977:22:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":59768,"name":"address","nodeType":"ElementaryTypeName","src":"4977:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":59769,"nodeType":"ArrayTypeName","src":"4977:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":59772,"mutability":"mutable","name":"ethAmount","nameLocation":"5009:9:70","nodeType":"VariableDeclaration","scope":59826,"src":"5001:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59771,"name":"uint256","nodeType":"ElementaryTypeName","src":"5001:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59774,"mutability":"mutable","name":"arpaAmount","nameLocation":"5028:10:70","nodeType":"VariableDeclaration","scope":59826,"src":"5020:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59773,"name":"uint256","nodeType":"ElementaryTypeName","src":"5020:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4976:63:70"},"returnParameters":{"id":59778,"nodeType":"ParameterList","parameters":[],"src":"5095:0:70"},"scope":60270,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59847,"nodeType":"FunctionDefinition","src":"5441:223:70","nodes":[],"body":{"id":59846,"nodeType":"Block","src":"5521:143:70","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":59836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":59833,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5535:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":59834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5539:6:70","memberName":"sender","nodeType":"MemberAccess","src":"5535:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":59835,"name":"_adapterContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59435,"src":"5549:23:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5535:37:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59841,"nodeType":"IfStatement","src":"5531:93:70","trueBody":{"id":59840,"nodeType":"Block","src":"5574:50:70","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":59837,"name":"SenderNotAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59476,"src":"5595:16:70","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":59838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5595:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59839,"nodeType":"RevertStatement","src":"5588:25:70"}]}},{"expression":{"id":59844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59842,"name":"_lastOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59448,"src":"5633:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":59843,"name":"lastOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59828,"src":"5647:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5633:24:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59845,"nodeType":"ExpressionStatement","src":"5633:24:70"}]},"baseFunctions":[63265],"functionSelector":"f3df0802","implemented":true,"kind":"function","modifiers":[],"name":"setLastOutput","nameLocation":"5450:13:70","overrides":{"id":59831,"nodeType":"OverrideSpecifier","overrides":[{"id":59830,"name":"IControllerOracle","nameLocations":["5502:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":63334,"src":"5502:17:70"}],"src":"5493:27:70"},"parameters":{"id":59829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59828,"mutability":"mutable","name":"lastOutput","nameLocation":"5472:10:70","nodeType":"VariableDeclaration","scope":59847,"src":"5464:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59827,"name":"uint256","nodeType":"ElementaryTypeName","src":"5464:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5463:20:70"},"returnParameters":{"id":59832,"nodeType":"ParameterList","parameters":[],"src":"5521:0:70"},"scope":60270,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":59912,"nodeType":"FunctionDefinition","src":"5670:563:70","nodes":[],"body":{"id":59911,"nodeType":"Block","src":"5769:464:70","nodes":[],"statements":[{"assignments":[59859],"declarations":[{"constant":false,"id":59859,"mutability":"mutable","name":"groupIndices","nameLocation":"5796:12:70","nodeType":"VariableDeclaration","scope":59911,"src":"5779:29:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":59857,"name":"uint256","nodeType":"ElementaryTypeName","src":"5779:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59858,"nodeType":"ArrayTypeName","src":"5779:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":59866,"initialValue":{"arguments":[{"expression":{"id":59863,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"5825:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5836:10:70","memberName":"groupCount","nodeType":"MemberAccess","referencedDeclaration":59410,"src":"5825:21:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5811:13:70","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":59860,"name":"uint256","nodeType":"ElementaryTypeName","src":"5815:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59861,"nodeType":"ArrayTypeName","src":"5815:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":59865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5811:36:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5779:68:70"},{"assignments":[59868],"declarations":[{"constant":false,"id":59868,"mutability":"mutable","name":"index","nameLocation":"5893:5:70","nodeType":"VariableDeclaration","scope":59911,"src":"5885:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59867,"name":"uint256","nodeType":"ElementaryTypeName","src":"5885:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":59870,"initialValue":{"hexValue":"30","id":59869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5901:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5885:17:70"},{"body":{"id":59903,"nodeType":"Block","src":"5964:198:70","statements":[{"assignments":[59884],"declarations":[{"constant":false,"id":59884,"mutability":"mutable","name":"g","nameLocation":"5991:1:70","nodeType":"VariableDeclaration","scope":59903,"src":"5978:14:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group"},"typeName":{"id":59883,"nodeType":"UserDefinedTypeName","pathNode":{"id":59882,"name":"Group","nameLocations":["5978:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":63201,"src":"5978:5:70"},"referencedDeclaration":63201,"src":"5978:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group"}},"visibility":"internal"}],"id":59889,"initialValue":{"baseExpression":{"expression":{"id":59885,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"5995:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6006:6:70","memberName":"groups","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"5995:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Group_$63201_storage_$","typeString":"mapping(uint256 => struct IControllerOracle.Group storage ref)"}},"id":59888,"indexExpression":{"id":59887,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59872,"src":"6013:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5995:20:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage","typeString":"struct IControllerOracle.Group storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5978:37:70"},{"condition":{"expression":{"id":59890,"name":"g","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59884,"src":"6033:1:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":59891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6035:34:70","memberName":"isStrictlyMajorityConsensusReached","nodeType":"MemberAccess","referencedDeclaration":63196,"src":"6033:36:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59902,"nodeType":"IfStatement","src":"6029:123:70","trueBody":{"id":59901,"nodeType":"Block","src":"6071:81:70","statements":[{"expression":{"id":59896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":59892,"name":"groupIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59859,"src":"6089:12:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":59894,"indexExpression":{"id":59893,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59868,"src":"6102:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6089:19:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":59895,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59872,"src":"6111:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6089:23:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59897,"nodeType":"ExpressionStatement","src":"6089:23:70"},{"expression":{"id":59899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6130:7:70","subExpression":{"id":59898,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59868,"src":"6130:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59900,"nodeType":"ExpressionStatement","src":"6130:7:70"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59875,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59872,"src":"5932:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":59876,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"5936:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5947:10:70","memberName":"groupCount","nodeType":"MemberAccess","referencedDeclaration":59410,"src":"5936:21:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5932:25:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59904,"initializationExpression":{"assignments":[59872],"declarations":[{"constant":false,"id":59872,"mutability":"mutable","name":"i","nameLocation":"5925:1:70","nodeType":"VariableDeclaration","scope":59904,"src":"5917:9:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59871,"name":"uint256","nodeType":"ElementaryTypeName","src":"5917:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":59874,"initialValue":{"hexValue":"30","id":59873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5929:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5917:13:70"},"loopExpression":{"expression":{"id":59880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5959:3:70","subExpression":{"id":59879,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59872,"src":"5959:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59881,"nodeType":"ExpressionStatement","src":"5959:3:70"},"nodeType":"ForStatement","src":"5912:250:70"},{"expression":{"arguments":[{"id":59907,"name":"groupIndices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59859,"src":"6206:12:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":59908,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59868,"src":"6220:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59905,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59396,"src":"6179:5:70","typeDescriptions":{"typeIdentifier":"t_module_68676","typeString":"module \"src/utils/Utils.sol\""}},"id":59906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6185:20:70","memberName":"trimTrailingElements","nodeType":"MemberAccess","referencedDeclaration":68517,"src":"6179:26:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256[] memory)"}},"id":59909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6179:47:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":59854,"id":59910,"nodeType":"Return","src":"6172:54:70"}]},"baseFunctions":[63272],"functionSelector":"b330a0fd","implemented":true,"kind":"function","modifiers":[],"name":"getValidGroupIndices","nameLocation":"5679:20:70","overrides":{"id":59850,"nodeType":"OverrideSpecifier","overrides":[{"id":59849,"name":"IControllerOracle","nameLocations":["5723:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":63334,"src":"5723:17:70"}],"src":"5714:27:70"},"parameters":{"id":59848,"nodeType":"ParameterList","parameters":[],"src":"5699:2:70"},"returnParameters":{"id":59854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59853,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":59912,"src":"5751:16:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":59851,"name":"uint256","nodeType":"ElementaryTypeName","src":"5751:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59852,"nodeType":"ArrayTypeName","src":"5751:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5750:18:70"},"scope":60270,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":59923,"nodeType":"FunctionDefinition","src":"6239:125:70","nodes":[],"body":{"id":59922,"nodeType":"Block","src":"6324:40:70","nodes":[],"statements":[{"expression":{"expression":{"id":59919,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"6341:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6352:5:70","memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":59408,"src":"6341:16:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":59918,"id":59921,"nodeType":"Return","src":"6334:23:70"}]},"baseFunctions":[63277],"functionSelector":"7ee49cfd","implemented":true,"kind":"function","modifiers":[],"name":"getGroupEpoch","nameLocation":"6248:13:70","overrides":{"id":59915,"nodeType":"OverrideSpecifier","overrides":[{"id":59914,"name":"IControllerOracle","nameLocations":["6287:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":63334,"src":"6287:17:70"}],"src":"6278:27:70"},"parameters":{"id":59913,"nodeType":"ParameterList","parameters":[],"src":"6261:2:70"},"returnParameters":{"id":59918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":59923,"src":"6315:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59916,"name":"uint256","nodeType":"ElementaryTypeName","src":"6315:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6314:9:70"},"scope":60270,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":59934,"nodeType":"FunctionDefinition","src":"6370:130:70","nodes":[],"body":{"id":59933,"nodeType":"Block","src":"6455:45:70","nodes":[],"statements":[{"expression":{"expression":{"id":59930,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"6472:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6483:10:70","memberName":"groupCount","nodeType":"MemberAccess","referencedDeclaration":59410,"src":"6472:21:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":59929,"id":59932,"nodeType":"Return","src":"6465:28:70"}]},"baseFunctions":[63282],"functionSelector":"06545a93","implemented":true,"kind":"function","modifiers":[],"name":"getGroupCount","nameLocation":"6379:13:70","overrides":{"id":59926,"nodeType":"OverrideSpecifier","overrides":[{"id":59925,"name":"IControllerOracle","nameLocations":["6418:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":63334,"src":"6418:17:70"}],"src":"6409:27:70"},"parameters":{"id":59924,"nodeType":"ParameterList","parameters":[],"src":"6392:2:70"},"returnParameters":{"id":59929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":59934,"src":"6446:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59927,"name":"uint256","nodeType":"ElementaryTypeName","src":"6446:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6445:9:70"},"scope":60270,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":59950,"nodeType":"FunctionDefinition","src":"6506:154:70","nodes":[],"body":{"id":59949,"nodeType":"Block","src":"6607:53:70","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":59944,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"6624:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6635:6:70","memberName":"groups","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"6624:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Group_$63201_storage_$","typeString":"mapping(uint256 => struct IControllerOracle.Group storage ref)"}},"id":59947,"indexExpression":{"id":59946,"name":"groupIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59936,"src":"6642:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6624:29:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage","typeString":"struct IControllerOracle.Group storage ref"}},"functionReturnParameters":59943,"id":59948,"nodeType":"Return","src":"6617:36:70"}]},"baseFunctions":[63290],"functionSelector":"ceb60654","implemented":true,"kind":"function","modifiers":[],"name":"getGroup","nameLocation":"6515:8:70","overrides":{"id":59939,"nodeType":"OverrideSpecifier","overrides":[{"id":59938,"name":"IControllerOracle","nameLocations":["6565:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":63334,"src":"6565:17:70"}],"src":"6556:27:70"},"parameters":{"id":59937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59936,"mutability":"mutable","name":"groupIndex","nameLocation":"6532:10:70","nodeType":"VariableDeclaration","scope":59950,"src":"6524:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59935,"name":"uint256","nodeType":"ElementaryTypeName","src":"6524:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6523:20:70"},"returnParameters":{"id":59943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":59950,"src":"6593:12:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group"},"typeName":{"id":59941,"nodeType":"UserDefinedTypeName","pathNode":{"id":59940,"name":"Group","nameLocations":["6593:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":63201,"src":"6593:5:70"},"referencedDeclaration":63201,"src":"6593:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group"}},"visibility":"internal"}],"src":"6592:14:70"},"scope":60270,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":59974,"nodeType":"FunctionDefinition","src":"6666:215:70","nodes":[],"body":{"id":59973,"nodeType":"Block","src":"6780:101:70","nodes":[],"statements":[{"expression":{"components":[{"expression":{"baseExpression":{"expression":{"id":59961,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"6798:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6809:6:70","memberName":"groups","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"6798:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Group_$63201_storage_$","typeString":"mapping(uint256 => struct IControllerOracle.Group storage ref)"}},"id":59964,"indexExpression":{"id":59963,"name":"groupIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59952,"src":"6816:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6798:29:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage","typeString":"struct IControllerOracle.Group storage ref"}},"id":59965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6828:9:70","memberName":"threshold","nodeType":"MemberAccess","referencedDeclaration":63183,"src":"6798:39:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"id":59966,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"6839:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6850:6:70","memberName":"groups","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"6839:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Group_$63201_storage_$","typeString":"mapping(uint256 => struct IControllerOracle.Group storage ref)"}},"id":59969,"indexExpression":{"id":59968,"name":"groupIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59952,"src":"6857:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6839:29:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage","typeString":"struct IControllerOracle.Group storage ref"}},"id":59970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6869:4:70","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":63181,"src":"6839:34:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":59971,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6797:77:70","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":59960,"id":59972,"nodeType":"Return","src":"6790:84:70"}]},"baseFunctions":[63299],"functionSelector":"f49e0ba9","implemented":true,"kind":"function","modifiers":[],"name":"getGroupThreshold","nameLocation":"6675:17:70","overrides":{"id":59955,"nodeType":"OverrideSpecifier","overrides":[{"id":59954,"name":"IControllerOracle","nameLocations":["6734:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":63334,"src":"6734:17:70"}],"src":"6725:27:70"},"parameters":{"id":59953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59952,"mutability":"mutable","name":"groupIndex","nameLocation":"6701:10:70","nodeType":"VariableDeclaration","scope":59974,"src":"6693:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59951,"name":"uint256","nodeType":"ElementaryTypeName","src":"6693:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6692:20:70"},"returnParameters":{"id":59960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":59974,"src":"6762:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59956,"name":"uint256","nodeType":"ElementaryTypeName","src":"6762:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59959,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":59974,"src":"6771:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59958,"name":"uint256","nodeType":"ElementaryTypeName","src":"6771:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6761:18:70"},"scope":60270,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":59995,"nodeType":"FunctionDefinition","src":"6887:234:70","nodes":[],"body":{"id":59994,"nodeType":"Block","src":"7047:74:70","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"expression":{"id":59986,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"7064:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":59987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7075:6:70","memberName":"groups","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"7064:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Group_$63201_storage_$","typeString":"mapping(uint256 => struct IControllerOracle.Group storage ref)"}},"id":59989,"indexExpression":{"id":59988,"name":"groupIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59976,"src":"7082:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7064:29:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage","typeString":"struct IControllerOracle.Group storage ref"}},"id":59990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7094:7:70","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":63187,"src":"7064:37:70","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Member_$63208_storage_$dyn_storage","typeString":"struct IControllerOracle.Member storage ref[] storage ref"}},"id":59992,"indexExpression":{"id":59991,"name":"memberIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59978,"src":"7102:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7064:50:70","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$63208_storage","typeString":"struct IControllerOracle.Member storage ref"}},"functionReturnParameters":59985,"id":59993,"nodeType":"Return","src":"7057:57:70"}]},"baseFunctions":[63309],"functionSelector":"4d79a893","implemented":true,"kind":"function","modifiers":[],"name":"getMember","nameLocation":"6896:9:70","overrides":{"id":59981,"nodeType":"OverrideSpecifier","overrides":[{"id":59980,"name":"IControllerOracle","nameLocations":["6992:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":63334,"src":"6992:17:70"}],"src":"6983:27:70"},"parameters":{"id":59979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59976,"mutability":"mutable","name":"groupIndex","nameLocation":"6914:10:70","nodeType":"VariableDeclaration","scope":59995,"src":"6906:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59975,"name":"uint256","nodeType":"ElementaryTypeName","src":"6906:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59978,"mutability":"mutable","name":"memberIndex","nameLocation":"6934:11:70","nodeType":"VariableDeclaration","scope":59995,"src":"6926:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59977,"name":"uint256","nodeType":"ElementaryTypeName","src":"6926:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6905:41:70"},"returnParameters":{"id":59985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59984,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":59995,"src":"7028:13:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$63208_memory_ptr","typeString":"struct IControllerOracle.Member"},"typeName":{"id":59983,"nodeType":"UserDefinedTypeName","pathNode":{"id":59982,"name":"Member","nameLocations":["7028:6:70"],"nodeType":"IdentifierPath","referencedDeclaration":63208,"src":"7028:6:70"},"referencedDeclaration":63208,"src":"7028:6:70","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$63208_storage_ptr","typeString":"struct IControllerOracle.Member"}},"visibility":"internal"}],"src":"7027:15:70"},"scope":60270,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":60046,"nodeType":"FunctionDefinition","src":"7127:430:70","nodes":[],"body":{"id":60045,"nodeType":"Block","src":"7278:279:70","nodes":[],"statements":[{"body":{"id":60037,"nodeType":"Block","src":"7340:186:70","statements":[{"assignments":[60018],"declarations":[{"constant":false,"id":60018,"mutability":"mutable","name":"memberIndex","nameLocation":"7361:11:70","nodeType":"VariableDeclaration","scope":60037,"src":"7354:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":60017,"name":"int256","nodeType":"ElementaryTypeName","src":"7354:6:70","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":60023,"initialValue":{"arguments":[{"id":60020,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60007,"src":"7400:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":60021,"name":"nodeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59997,"src":"7403:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60019,"name":"_getMemberIndexByAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60269,"src":"7375:24:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_int256_$","typeString":"function (uint256,address) view returns (int256)"}},"id":60022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7375:40:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"7354:61:70"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":60027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":60024,"name":"memberIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60018,"src":"7433:11:70","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":60026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"7448:2:70","subExpression":{"hexValue":"31","id":60025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7449:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"7433:17:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60036,"nodeType":"IfStatement","src":"7429:87:70","trueBody":{"id":60035,"nodeType":"Block","src":"7452:64:70","statements":[{"expression":{"components":[{"arguments":[{"id":60030,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60007,"src":"7485:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7478:6:70","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":60028,"name":"int256","nodeType":"ElementaryTypeName","src":"7478:6:70","typeDescriptions":{}}},"id":60031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7478:9:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":60032,"name":"memberIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60018,"src":"7489:11:70","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":60033,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7477:24:70","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256)"}},"functionReturnParameters":60005,"id":60034,"nodeType":"Return","src":"7470:31:70"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":60010,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60007,"src":"7308:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":60011,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"7312:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":60012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7323:10:70","memberName":"groupCount","nodeType":"MemberAccess","referencedDeclaration":59410,"src":"7312:21:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7308:25:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60038,"initializationExpression":{"assignments":[60007],"declarations":[{"constant":false,"id":60007,"mutability":"mutable","name":"i","nameLocation":"7301:1:70","nodeType":"VariableDeclaration","scope":60038,"src":"7293:9:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60006,"name":"uint256","nodeType":"ElementaryTypeName","src":"7293:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60009,"initialValue":{"hexValue":"30","id":60008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7305:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7293:13:70"},"loopExpression":{"expression":{"id":60015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7335:3:70","subExpression":{"id":60014,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60007,"src":"7335:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60016,"nodeType":"ExpressionStatement","src":"7335:3:70"},"nodeType":"ForStatement","src":"7288:238:70"},{"expression":{"components":[{"id":60040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"7543:2:70","subExpression":{"hexValue":"31","id":60039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7544:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},{"id":60042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"7547:2:70","subExpression":{"hexValue":"31","id":60041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7548:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"id":60043,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7542:8:70","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_minus_1_by_1_$_t_rational_minus_1_by_1_$","typeString":"tuple(int_const -1,int_const -1)"}},"functionReturnParameters":60005,"id":60044,"nodeType":"Return","src":"7535:15:70"}]},"baseFunctions":[63319],"functionSelector":"3b6c00b0","implemented":true,"kind":"function","modifiers":[],"name":"getBelongingGroup","nameLocation":"7136:17:70","overrides":{"id":60000,"nodeType":"OverrideSpecifier","overrides":[{"id":59999,"name":"IControllerOracle","nameLocations":["7222:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":63334,"src":"7222:17:70"}],"src":"7213:27:70"},"parameters":{"id":59998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59997,"mutability":"mutable","name":"nodeAddress","nameLocation":"7162:11:70","nodeType":"VariableDeclaration","scope":60046,"src":"7154:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59996,"name":"address","nodeType":"ElementaryTypeName","src":"7154:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7153:21:70"},"returnParameters":{"id":60005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60002,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60046,"src":"7258:6:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":60001,"name":"int256","nodeType":"ElementaryTypeName","src":"7258:6:70","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":60004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60046,"src":"7266:6:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":60003,"name":"int256","nodeType":"ElementaryTypeName","src":"7266:6:70","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7257:16:70"},"scope":60270,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":60086,"nodeType":"FunctionDefinition","src":"7563:391:70","nodes":[],"body":{"id":60085,"nodeType":"Block","src":"7722:232:70","nodes":[],"statements":[{"expression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":60057,"name":"_withdrawableEths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59439,"src":"7753:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":60059,"indexExpression":{"id":60058,"name":"nodeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60048,"src":"7771:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7753:30:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":60060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7787:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7753:35:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":60063,"name":"_withdrawableEths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59439,"src":"7796:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":60065,"indexExpression":{"id":60064,"name":"nodeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60048,"src":"7814:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7796:30:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":60066,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59425,"src":"7829:13:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"7796:46:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":60068,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7795:48:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7753:90:70","trueExpression":{"hexValue":"30","id":60062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7791:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":60070,"name":"_arpaRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59443,"src":"7857:12:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":60072,"indexExpression":{"id":60071,"name":"nodeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60048,"src":"7870:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7857:25:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":60073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7886:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7857:30:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":60076,"name":"_arpaRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59443,"src":"7895:12:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":60078,"indexExpression":{"id":60077,"name":"nodeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60048,"src":"7908:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7895:25:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":60079,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59425,"src":"7923:13:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"7895:41:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":60081,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7894:43:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7857:80:70","trueExpression":{"hexValue":"30","id":60075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7890:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":60083,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7739:208:70","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":60056,"id":60084,"nodeType":"Return","src":"7732:215:70"}]},"baseFunctions":[63328],"functionSelector":"227d0f46","implemented":true,"kind":"function","modifiers":[],"name":"getNodeWithdrawableTokens","nameLocation":"7572:25:70","overrides":{"id":60051,"nodeType":"OverrideSpecifier","overrides":[{"id":60050,"name":"IControllerOracle","nameLocations":["7664:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":63334,"src":"7664:17:70"}],"src":"7655:27:70"},"parameters":{"id":60049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60048,"mutability":"mutable","name":"nodeAddress","nameLocation":"7606:11:70","nodeType":"VariableDeclaration","scope":60086,"src":"7598:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60047,"name":"address","nodeType":"ElementaryTypeName","src":"7598:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7597:21:70"},"returnParameters":{"id":60056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60053,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60086,"src":"7700:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60052,"name":"uint256","nodeType":"ElementaryTypeName","src":"7700:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":60055,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60086,"src":"7709:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60054,"name":"uint256","nodeType":"ElementaryTypeName","src":"7709:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7699:18:70"},"scope":60270,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":60094,"nodeType":"FunctionDefinition","src":"7960:92:70","nodes":[],"body":{"id":60093,"nodeType":"Block","src":"8017:35:70","nodes":[],"statements":[{"expression":{"id":60091,"name":"_lastOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59448,"src":"8034:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":60090,"id":60092,"nodeType":"Return","src":"8027:18:70"}]},"baseFunctions":[63333],"functionSelector":"51a2b9a0","implemented":true,"kind":"function","modifiers":[],"name":"getLastOutput","nameLocation":"7969:13:70","parameters":{"id":60087,"nodeType":"ParameterList","parameters":[],"src":"7982:2:70"},"returnParameters":{"id":60090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60094,"src":"8008:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60088,"name":"uint256","nodeType":"ElementaryTypeName","src":"8008:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8007:9:70"},"scope":60270,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":60220,"nodeType":"FunctionDefinition","src":"8058:938:70","nodes":[],"body":{"id":60219,"nodeType":"Block","src":"8107:889:70","nodes":[],"statements":[{"assignments":[60102],"declarations":[{"constant":false,"id":60102,"mutability":"mutable","name":"g","nameLocation":"8131:1:70","nodeType":"VariableDeclaration","scope":60219,"src":"8117:15:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group"},"typeName":{"id":60101,"nodeType":"UserDefinedTypeName","pathNode":{"id":60100,"name":"Group","nameLocations":["8117:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":63201,"src":"8117:5:70"},"referencedDeclaration":63201,"src":"8117:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group"}},"visibility":"internal"}],"id":60108,"initialValue":{"baseExpression":{"expression":{"id":60103,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"8135:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":60104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8146:6:70","memberName":"groups","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"8135:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Group_$63201_storage_$","typeString":"mapping(uint256 => struct IControllerOracle.Group storage ref)"}},"id":60107,"indexExpression":{"expression":{"id":60105,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60097,"src":"8153:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":60106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8159:5:70","memberName":"index","nodeType":"MemberAccess","referencedDeclaration":63177,"src":"8153:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8135:30:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage","typeString":"struct IControllerOracle.Group storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8117:48:70"},{"expression":{"id":60114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":60109,"name":"g","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60102,"src":"8175:1:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group storage pointer"}},"id":60111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8177:5:70","memberName":"index","nodeType":"MemberAccess","referencedDeclaration":63177,"src":"8175:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":60112,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60097,"src":"8185:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":60113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8191:5:70","memberName":"index","nodeType":"MemberAccess","referencedDeclaration":63177,"src":"8185:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8175:21:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60115,"nodeType":"ExpressionStatement","src":"8175:21:70"},{"expression":{"id":60121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":60116,"name":"g","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60102,"src":"8206:1:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group storage pointer"}},"id":60118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8208:5:70","memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":63179,"src":"8206:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":60119,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60097,"src":"8216:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":60120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8222:5:70","memberName":"epoch","nodeType":"MemberAccess","referencedDeclaration":63179,"src":"8216:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8206:21:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60122,"nodeType":"ExpressionStatement","src":"8206:21:70"},{"expression":{"id":60128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":60123,"name":"g","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60102,"src":"8237:1:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group storage pointer"}},"id":60125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8239:9:70","memberName":"threshold","nodeType":"MemberAccess","referencedDeclaration":63183,"src":"8237:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":60126,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60097,"src":"8251:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":60127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8257:9:70","memberName":"threshold","nodeType":"MemberAccess","referencedDeclaration":63183,"src":"8251:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8237:29:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60129,"nodeType":"ExpressionStatement","src":"8237:29:70"},{"expression":{"id":60135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":60130,"name":"g","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60102,"src":"8276:1:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group storage pointer"}},"id":60132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8278:4:70","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":63181,"src":"8276:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":60133,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60097,"src":"8285:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":60134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8291:4:70","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":63181,"src":"8285:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8276:19:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60136,"nodeType":"ExpressionStatement","src":"8276:19:70"},{"expression":{"id":60142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":60137,"name":"g","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60102,"src":"8305:1:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group storage pointer"}},"id":60139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8307:34:70","memberName":"isStrictlyMajorityConsensusReached","nodeType":"MemberAccess","referencedDeclaration":63196,"src":"8305:36:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":60140,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60097,"src":"8344:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":60141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8350:34:70","memberName":"isStrictlyMajorityConsensusReached","nodeType":"MemberAccess","referencedDeclaration":63196,"src":"8344:40:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8305:79:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60143,"nodeType":"ExpressionStatement","src":"8305:79:70"},{"expression":{"id":60146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8394:16:70","subExpression":{"expression":{"id":60144,"name":"g","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60102,"src":"8401:1:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group storage pointer"}},"id":60145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8403:7:70","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":63187,"src":"8401:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Member_$63208_storage_$dyn_storage","typeString":"struct IControllerOracle.Member storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60147,"nodeType":"ExpressionStatement","src":"8394:16:70"},{"body":{"id":60203,"nodeType":"Block","src":"8461:449:70","statements":[{"assignments":[60160],"declarations":[{"constant":false,"id":60160,"mutability":"mutable","name":"memberAddress","nameLocation":"8483:13:70","nodeType":"VariableDeclaration","scope":60203,"src":"8475:21:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60159,"name":"address","nodeType":"ElementaryTypeName","src":"8475:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":60166,"initialValue":{"expression":{"baseExpression":{"expression":{"id":60161,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60097,"src":"8499:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":60162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8505:7:70","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":63187,"src":"8499:13:70","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Member_$63208_memory_ptr_$dyn_memory_ptr","typeString":"struct IControllerOracle.Member memory[] memory"}},"id":60164,"indexExpression":{"id":60163,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60149,"src":"8513:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8499:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$63208_memory_ptr","typeString":"struct IControllerOracle.Member memory"}},"id":60165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8516:13:70","memberName":"nodeIdAddress","nodeType":"MemberAccess","referencedDeclaration":63203,"src":"8499:30:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8475:54:70"},{"expression":{"arguments":[{"baseExpression":{"expression":{"id":60172,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60097,"src":"8558:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":60173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8564:7:70","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":63187,"src":"8558:13:70","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Member_$63208_memory_ptr_$dyn_memory_ptr","typeString":"struct IControllerOracle.Member memory[] memory"}},"id":60175,"indexExpression":{"id":60174,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60149,"src":"8572:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8558:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$63208_memory_ptr","typeString":"struct IControllerOracle.Member memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Member_$63208_memory_ptr","typeString":"struct IControllerOracle.Member memory"}],"expression":{"expression":{"id":60167,"name":"g","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60102,"src":"8543:1:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group storage pointer"}},"id":60170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8545:7:70","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":63187,"src":"8543:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Member_$63208_storage_$dyn_storage","typeString":"struct IControllerOracle.Member storage ref[] storage ref"}},"id":60171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8553:4:70","memberName":"push","nodeType":"MemberAccess","src":"8543:14:70","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Member_$63208_storage_$dyn_storage_ptr_$_t_struct$_Member_$63208_storage_$returns$__$attached_to$_t_array$_t_struct$_Member_$63208_storage_$dyn_storage_ptr_$","typeString":"function (struct IControllerOracle.Member storage ref[] storage pointer,struct IControllerOracle.Member storage ref)"}},"id":60176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8543:32:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60177,"nodeType":"ExpressionStatement","src":"8543:32:70"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":60188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":60178,"name":"_withdrawableEths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59439,"src":"8683:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":60180,"indexExpression":{"id":60179,"name":"memberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60160,"src":"8701:13:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8683:32:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":60181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8719:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8683:37:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":60183,"name":"_arpaRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59443,"src":"8724:12:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":60185,"indexExpression":{"id":60184,"name":"memberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60160,"src":"8737:13:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8724:27:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":60186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8755:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8724:32:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8683:73:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60202,"nodeType":"IfStatement","src":"8679:221:70","trueBody":{"id":60201,"nodeType":"Block","src":"8758:142:70","statements":[{"expression":{"id":60193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":60189,"name":"_withdrawableEths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59439,"src":"8776:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":60191,"indexExpression":{"id":60190,"name":"memberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60160,"src":"8794:13:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8776:32:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":60192,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59425,"src":"8811:13:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"8776:48:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60194,"nodeType":"ExpressionStatement","src":"8776:48:70"},{"expression":{"id":60199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":60195,"name":"_arpaRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59443,"src":"8842:12:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":60197,"indexExpression":{"id":60196,"name":"memberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60160,"src":"8855:13:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8842:27:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":60198,"name":"_BALANCE_BASE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59425,"src":"8872:13:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"8842:43:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60200,"nodeType":"ExpressionStatement","src":"8842:43:70"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":60152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60149,"src":"8440:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":60153,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60097,"src":"8444:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":60154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8450:4:70","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":63181,"src":"8444:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8440:14:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60204,"initializationExpression":{"assignments":[60149],"declarations":[{"constant":false,"id":60149,"mutability":"mutable","name":"i","nameLocation":"8433:1:70","nodeType":"VariableDeclaration","scope":60204,"src":"8425:9:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60148,"name":"uint256","nodeType":"ElementaryTypeName","src":"8425:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60151,"initialValue":{"hexValue":"30","id":60150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8437:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8425:13:70"},"loopExpression":{"expression":{"id":60157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8456:3:70","subExpression":{"id":60156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60149,"src":"8456:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60158,"nodeType":"ExpressionStatement","src":"8456:3:70"},"nodeType":"ForStatement","src":"8420:490:70"},{"expression":{"id":60210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":60205,"name":"g","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60102,"src":"8919:1:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group storage pointer"}},"id":60207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8921:10:70","memberName":"committers","nodeType":"MemberAccess","referencedDeclaration":63190,"src":"8919:12:70","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":60208,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60097,"src":"8934:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":60209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8940:10:70","memberName":"committers","nodeType":"MemberAccess","referencedDeclaration":63190,"src":"8934:16:70","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"8919:31:70","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":60211,"nodeType":"ExpressionStatement","src":"8919:31:70"},{"expression":{"id":60217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":60212,"name":"g","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60102,"src":"8960:1:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group storage pointer"}},"id":60214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8962:9:70","memberName":"publicKey","nodeType":"MemberAccess","referencedDeclaration":63200,"src":"8960:11:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":60215,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60097,"src":"8974:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":60216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8980:9:70","memberName":"publicKey","nodeType":"MemberAccess","referencedDeclaration":63200,"src":"8974:15:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}},"src":"8960:29:70","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":60218,"nodeType":"ExpressionStatement","src":"8960:29:70"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_copyGroup","nameLocation":"8067:10:70","parameters":{"id":60098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60097,"mutability":"mutable","name":"group","nameLocation":"8091:5:70","nodeType":"VariableDeclaration","scope":60220,"src":"8078:18:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group"},"typeName":{"id":60096,"nodeType":"UserDefinedTypeName","pathNode":{"id":60095,"name":"Group","nameLocations":["8078:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":63201,"src":"8078:5:70"},"referencedDeclaration":63201,"src":"8078:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group"}},"visibility":"internal"}],"src":"8077:20:70"},"returnParameters":{"id":60099,"nodeType":"ParameterList","parameters":[],"src":"8107:0:70"},"scope":60270,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":60269,"nodeType":"FunctionDefinition","src":"9002:364:70","nodes":[],"body":{"id":60268,"nodeType":"Block","src":"9108:258:70","nodes":[],"statements":[{"assignments":[60231],"declarations":[{"constant":false,"id":60231,"mutability":"mutable","name":"g","nameLocation":"9131:1:70","nodeType":"VariableDeclaration","scope":60268,"src":"9118:14:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group"},"typeName":{"id":60230,"nodeType":"UserDefinedTypeName","pathNode":{"id":60229,"name":"Group","nameLocations":["9118:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":63201,"src":"9118:5:70"},"referencedDeclaration":63201,"src":"9118:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage_ptr","typeString":"struct IControllerOracle.Group"}},"visibility":"internal"}],"id":60236,"initialValue":{"baseExpression":{"expression":{"id":60232,"name":"_groupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59446,"src":"9135:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_GroupData_$59422_storage","typeString":"struct ControllerOracle.GroupData storage ref"}},"id":60233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9146:6:70","memberName":"groups","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"9135:17:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Group_$63201_storage_$","typeString":"mapping(uint256 => struct IControllerOracle.Group storage ref)"}},"id":60235,"indexExpression":{"id":60234,"name":"groupIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60222,"src":"9153:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9135:29:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_storage","typeString":"struct IControllerOracle.Group storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9118:46:70"},{"body":{"id":60263,"nodeType":"Block","src":"9221:120:70","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":60255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":60249,"name":"g","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60231,"src":"9239:1:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":60250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9241:7:70","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":63187,"src":"9239:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Member_$63208_memory_ptr_$dyn_memory_ptr","typeString":"struct IControllerOracle.Member memory[] memory"}},"id":60252,"indexExpression":{"id":60251,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60238,"src":"9249:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9239:12:70","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$63208_memory_ptr","typeString":"struct IControllerOracle.Member memory"}},"id":60253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9252:13:70","memberName":"nodeIdAddress","nodeType":"MemberAccess","referencedDeclaration":63203,"src":"9239:26:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":60254,"name":"nodeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60224,"src":"9269:11:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9239:41:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60262,"nodeType":"IfStatement","src":"9235:96:70","trueBody":{"id":60261,"nodeType":"Block","src":"9282:49:70","statements":[{"expression":{"arguments":[{"id":60258,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60238,"src":"9314:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9307:6:70","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":60256,"name":"int256","nodeType":"ElementaryTypeName","src":"9307:6:70","typeDescriptions":{}}},"id":60259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:9:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":60228,"id":60260,"nodeType":"Return","src":"9300:16:70"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":60241,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60238,"src":"9194:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":60242,"name":"g","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60231,"src":"9198:1:70","typeDescriptions":{"typeIdentifier":"t_struct$_Group_$63201_memory_ptr","typeString":"struct IControllerOracle.Group memory"}},"id":60243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9200:7:70","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":63187,"src":"9198:9:70","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Member_$63208_memory_ptr_$dyn_memory_ptr","typeString":"struct IControllerOracle.Member memory[] memory"}},"id":60244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9208:6:70","memberName":"length","nodeType":"MemberAccess","src":"9198:16:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9194:20:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60264,"initializationExpression":{"assignments":[60238],"declarations":[{"constant":false,"id":60238,"mutability":"mutable","name":"i","nameLocation":"9187:1:70","nodeType":"VariableDeclaration","scope":60264,"src":"9179:9:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60237,"name":"uint256","nodeType":"ElementaryTypeName","src":"9179:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60240,"initialValue":{"hexValue":"30","id":60239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9191:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9179:13:70"},"loopExpression":{"expression":{"id":60247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9216:3:70","subExpression":{"id":60246,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60238,"src":"9216:1:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60248,"nodeType":"ExpressionStatement","src":"9216:3:70"},"nodeType":"ForStatement","src":"9174:167:70"},{"expression":{"id":60266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"9357:2:70","subExpression":{"hexValue":"31","id":60265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9358:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"functionReturnParameters":60228,"id":60267,"nodeType":"Return","src":"9350:9:70"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getMemberIndexByAddress","nameLocation":"9011:24:70","parameters":{"id":60225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60222,"mutability":"mutable","name":"groupIndex","nameLocation":"9044:10:70","nodeType":"VariableDeclaration","scope":60269,"src":"9036:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60221,"name":"uint256","nodeType":"ElementaryTypeName","src":"9036:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":60224,"mutability":"mutable","name":"nodeAddress","nameLocation":"9064:11:70","nodeType":"VariableDeclaration","scope":60269,"src":"9056:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60223,"name":"address","nodeType":"ElementaryTypeName","src":"9056:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9035:41:70"},"returnParameters":{"id":60228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60227,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60269,"src":"9100:6:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":60226,"name":"int256","nodeType":"ElementaryTypeName","src":"9100:6:70","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9099:8:70"},"scope":60270,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":59397,"name":"UUPSUpgradeable","nameLocations":["696:15:70"],"nodeType":"IdentifierPath","referencedDeclaration":49537,"src":"696:15:70"},"id":59398,"nodeType":"InheritanceSpecifier","src":"696:15:70"},{"baseName":{"id":59399,"name":"IControllerOracle","nameLocations":["713:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":63334,"src":"713:17:70"},"id":59400,"nodeType":"InheritanceSpecifier","src":"713:17:70"},{"baseName":{"id":59401,"name":"OwnableUpgradeable","nameLocations":["732:18:70"],"nodeType":"IdentifierPath","referencedDeclaration":48865,"src":"732:18:70"},"id":59402,"nodeType":"InheritanceSpecifier","src":"732:18:70"}],"canonicalName":"ControllerOracle","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[60270,48865,49918,63334,49537,49221,48886,48896,49400],"name":"ControllerOracle","nameLocation":"676:16:70","scope":60271,"usedErrors":[59474,59476,59478,59480]}],"license":"MIT"},"id":70}