UNPKG

arc_dx

Version:

A platform for building DAOs

906 lines 1.55 MB
{ "contractName": "ContributionReward", "abi": [ { "constant": true, "inputs": [ { "name": "", "type": "bytes32" } ], "name": "parameters", "outputs": [ { "name": "orgNativeTokenFee", "type": "uint256" }, { "name": "voteApproveParams", "type": "bytes32" }, { "name": "intVote", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" }, { "name": "", "type": "bytes32" } ], "name": "organizationsProposals", "outputs": [ { "name": "contributionDescriptionHash", "type": "bytes32" }, { "name": "nativeTokenReward", "type": "uint256" }, { "name": "reputationChange", "type": "int256" }, { "name": "ethReward", "type": "uint256" }, { "name": "externalToken", "type": "address" }, { "name": "externalTokenReward", "type": "uint256" }, { "name": "beneficiary", "type": "address" }, { "name": "periodLength", "type": "uint256" }, { "name": "numberOfPeriods", "type": "uint256" }, { "name": "executionTime", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_hashedParameters", "type": "bytes32" } ], "name": "updateParameters", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_stakingToken", "type": "address" }, { "name": "_proposalId", "type": "bytes32" } ], "name": "balanceOfStakingToken", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "renounceOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" }, { "name": "_proposalId", "type": "bytes32" } ], "name": "reputationOf", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_proposalId", "type": "bytes32" } ], "name": "getTotalReputationSupply", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_stakingToken", "type": "address" }, { "name": "_beneficiary", "type": "address" }, { "name": "_amount", "type": "uint256" }, { "name": "_proposalId", "type": "bytes32" } ], "name": "stakingTokenTransfer", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_amount", "type": "uint256" }, { "name": "_beneficiary", "type": "address" }, { "name": "_proposalId", "type": "bytes32" } ], "name": "mintReputation", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_amount", "type": "uint256" }, { "name": "_beneficiary", "type": "address" }, { "name": "_proposalId", "type": "bytes32" } ], "name": "burnReputation", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "hashedParameters", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_avatar", "type": "address" }, { "indexed": true, "name": "_proposalId", "type": "bytes32" }, { "indexed": true, "name": "_intVoteInterface", "type": "address" }, { "indexed": false, "name": "_contributionDescription", "type": "bytes32" }, { "indexed": false, "name": "_reputationChange", "type": "int256" }, { "indexed": false, "name": "_rewards", "type": "uint256[5]" }, { "indexed": false, "name": "_externalToken", "type": "address" }, { "indexed": false, "name": "_beneficiary", "type": "address" } ], "name": "NewContributionProposal", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_avatar", "type": "address" }, { "indexed": true, "name": "_proposalId", "type": "bytes32" }, { "indexed": false, "name": "_param", "type": "int256" } ], "name": "ProposalExecuted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_avatar", "type": "address" }, { "indexed": true, "name": "_proposalId", "type": "bytes32" }, { "indexed": true, "name": "_beneficiary", "type": "address" }, { "indexed": false, "name": "_amount", "type": "int256" } ], "name": "RedeemReputation", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_avatar", "type": "address" }, { "indexed": true, "name": "_proposalId", "type": "bytes32" }, { "indexed": true, "name": "_beneficiary", "type": "address" }, { "indexed": false, "name": "_amount", "type": "uint256" } ], "name": "RedeemEther", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_avatar", "type": "address" }, { "indexed": true, "name": "_proposalId", "type": "bytes32" }, { "indexed": true, "name": "_beneficiary", "type": "address" }, { "indexed": false, "name": "_amount", "type": "uint256" } ], "name": "RedeemNativeToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_avatar", "type": "address" }, { "indexed": true, "name": "_proposalId", "type": "bytes32" }, { "indexed": true, "name": "_beneficiary", "type": "address" }, { "indexed": false, "name": "_amount", "type": "uint256" } ], "name": "RedeemExternalToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" } ], "name": "OwnershipRenounced", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" }, { "indexed": true, "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "constant": false, "inputs": [ { "name": "_proposalId", "type": "bytes32" }, { "name": "_param", "type": "int256" } ], "name": "executeProposal", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_orgNativeTokenFee", "type": "uint256" }, { "name": "_voteApproveParams", "type": "bytes32" }, { "name": "_intVote", "type": "address" } ], "name": "setParameters", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_orgNativeTokenFee", "type": "uint256" }, { "name": "_voteApproveParams", "type": "bytes32" }, { "name": "_intVote", "type": "address" } ], "name": "getParametersHash", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": false, "inputs": [ { "name": "_avatar", "type": "address" }, { "name": "_contributionDescriptionHash", "type": "bytes32" }, { "name": "_reputationChange", "type": "int256" }, { "name": "_rewards", "type": "uint256[5]" }, { "name": "_externalToken", "type": "address" }, { "name": "_beneficiary", "type": "address" } ], "name": "proposeContributionReward", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_proposalId", "type": "bytes32" }, { "name": "_avatar", "type": "address" } ], "name": "redeemReputation", "outputs": [ { "name": "reputation", "type": "int256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_proposalId", "type": "bytes32" }, { "name": "_avatar", "type": "address" } ], "name": "redeemNativeToken", "outputs": [ { "name": "amount", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_proposalId", "type": "bytes32" }, { "name": "_avatar", "type": "address" } ], "name": "redeemEther", "outputs": [ { "name": "amount", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_proposalId", "type": "bytes32" }, { "name": "_avatar", "type": "address" } ], "name": "redeemExternalToken", "outputs": [ { "name": "amount", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_proposalId", "type": "bytes32" }, { "name": "_avatar", "type": "address" }, { "name": "_whatToRedeem", "type": "bool[4]" } ], "name": "redeem", "outputs": [ { "name": "reputationReward", "type": "int256" }, { "name": "nativeTokenReward", "type": "uint256" }, { "name": "etherReward", "type": "uint256" }, { "name": "externalTokenReward", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_proposalId", "type": "bytes32" }, { "name": "_avatar", "type": "address" }, { "name": "_redeemType", "type": "uint256" } ], "name": "getPeriodsToPay", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_proposalId", "type": "bytes32" }, { "name": "_avatar", "type": "address" }, { "name": "_redeemType", "type": "uint256" } ], "name": "getRedeemedPeriods", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_proposalId", "type": "bytes32" }, { "name": "_avatar", "type": "address" } ], "name": "getProposalEthReward", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_proposalId", "type": "bytes32" }, { "name": "_avatar", "type": "address" } ], "name": "getProposalExternalTokenReward", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_proposalId", "type": "bytes32" }, { "name": "_avatar", "type": "address" } ], "name": "getProposalExternalToken", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_proposalId", "type": "bytes32" }, { "name": "_avatar", "type": "address" } ], "name": "getProposalExecutionTime", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" } ], "bytecode": "0x608060405260008054600160a060020a03191633179055612c20806100256000396000f3006080604052600436106101505763ffffffff60e060020a60003504166302506804811461015557806306e3a978146101945780630d5e1e82146102135780631c3a5713146102495780632ac2af531461026d5780633a256daa14610287578063465ff7d7146102ab5780636046f71d146102d25780636b8eb403146102f6578063715018a61461031a5780638da5cb5b1461032f5780639588378e146103605780639a55054c146103845780639d4c162d146103f4578063b551c37314610423578063b74fd44f1461043b578063b7c251c314610462578063bb1c935114610489578063bea75f28146104ad578063cd3ce306146104da578063d29b5d2f146104fe578063d58bf09a14610525578063e074ee551461059d578063e63b681e146105c4578063f2fde38b146105e8578063f70bbb9a14610609578063f81f8bf61461062d578063f98e87ba14610654575b600080fd5b34801561016157600080fd5b5061016d600435610669565b604080519384526020840192909252600160a060020a031682820152519081900360600190f35b3480156101a057600080fd5b506101b8600160a060020a0360043516602435610693565b604080519a8b5260208b0199909952898901979097526060890195909552600160a060020a03938416608089015260a088019290925290911660c086015260e085015261010084015261012083015251908190036101400190f35b34801561021f57600080fd5b50610237600435600160a060020a03602435166106fb565b60408051918252519081900360200190f35b34801561025557600080fd5b50610237600435600160a060020a0360243516610aff565b34801561027957600080fd5b50610285600435610b2d565b005b34801561029357600080fd5b50610237600435600160a060020a0360243516610b49565b3480156102b757600080fd5b50610237600435602435600160a060020a0360443516610b71565b3480156102de57600080fd5b50610237600435600160a060020a0360243516610bce565b34801561030257600080fd5b50610237600160a060020a0360043516602435610bf6565b34801561032657600080fd5b50610285610ca4565b34801561033b57600080fd5b50610344610d10565b60408051600160a060020a039092168252519081900360200190f35b34801561036c57600080fd5b50610237600160a060020a0360043516602435610d1f565b34801561039057600080fd5b506040805160a08082019092526102379160048035600160a060020a031692602435926044359236929091610104919060649060059083908390808284375093965050600160a060020a038435811695506020909401359093169250610e58915050565b34801561040057600080fd5b5061040f6004356024356114b5565b604080519115158252519081900360200190f35b34801561042f57600080fd5b50610237600435611641565b34801561044757600080fd5b50610237600435602435600160a060020a03604435166117a6565b34801561046e57600080fd5b50610237600435600160a060020a036024351660443561184c565b34801561049557600080fd5b50610237600435600160a060020a0360243516611887565b3480156104b957600080fd5b5061040f600160a060020a0360043581169060243516604435606435611b5f565b3480156104e657600080fd5b50610237600435600160a060020a0360243516611d0e565b34801561050a57600080fd5b5061040f600435600160a060020a0360243516604435611fe6565b34801561053157600080fd5b50604080516080818101909252610577916004803592600160a060020a03602435169236929160c491604490849083908390808284375093965061218c95505050505050565b604080519485526020850193909352838301919091526060830152519081900360800190f35b3480156105a957600080fd5b50610237600435600160a060020a03602435166044356121f8565b3480156105d057600080fd5b50610237600435600160a060020a0360243516612429565b3480156105f457600080fd5b50610285600160a060020a0360043516612732565b34801561061557600080fd5b50610344600435600160a060020a0360243516612755565b34801561063957600080fd5b5061040f600435600160a060020a0360243516604435612783565b34801561066057600080fd5b506102376128f1565b600460205260009081526040902080546001820154600290920154909190600160a060020a031683565b6003602081815260009384526040808520909152918352912080546001820154600283015493830154600484015460058501546006860154600787015460088801546009909801549698959795969495600160a060020a03948516959394909216929091908a565b6000610705612ac5565b600160a060020a0383811660009081526003602081815260408084208985528252808420815161016081018352815481526001820154938101939093526002810154838301529283015460608301526004808401548616608080850191909152600585015460a0850152600685015490961660c0840152600784015460e08401526008840154610100840152600984015461012084015281519586019182905293948594929392610140850192600a8501919082845b8154815260200190600101908083116107bb5750505091909252505050600160a060020a03861660009081526003602090815260408083208a8452909152902060098101549194509250151561081057600080fd5b61081c868660006121f8565b6000600284018190556040850151820295509091508413156109575784600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561087657600080fd5b505af115801561088a573d6000803e3d6000fd5b505050506040513d60208110156108a057600080fd5b505160c0840151604080517feaf994b200000000000000000000000000000000000000000000000000000000815260048101889052600160a060020a03928316602482015288831660448201529051919092169163eaf994b29160648083019260209291908290030181600087803b15801561091b57600080fd5b505af115801561092f573d6000803e3d6000fd5b505050506040513d602081101561094557600080fd5b5051151561095257600080fd5b610a7d565b6000841215610a7d5784600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561099e57600080fd5b505af11580156109b2573d6000803e3d6000fd5b505050506040513d60208110156109c857600080fd5b505160c0840151604080517f6e94d27800000000000000000000000000000000000000000000000000000000815260008881036004830152600160a060020a039384166024830152898416604483015291519290931692636e94d2789260648083019360209383900390910190829087803b158015610a4657600080fd5b505af1158015610a5a573d6000803e3d6000fd5b505050506040513d6020811015610a7057600080fd5b50511515610a7d57600080fd5b8315610aec57610a9c81600a840160005b01549063ffffffff6128f716565b600a83015560c0830151604080518681529051600160a060020a03928316928992908916917feab8bc4bf2fd6ce5634b8e75023e0e48367e68249ce2aa2c0ef7c0efe5648bee9181900360200190a45b5060409091015160029091015592915050565b600160a060020a03811660009081526003602090815260408083208584529091529020600501545b92915050565b600054600160a060020a03163314610b4457600080fd5b600155565b600160a060020a03166000908152600360209081526040808320938352929052206009015490565b600080610b7f8585856117a6565b6000818152600460205260409020958655600186019490945550506002909201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03939093169290921790915590565b600160a060020a03166000908152600360208181526040808420948452939052919020015490565b60008181526002602090815260408083206001015481517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a039182166004820181905292519293918716926370a082319260248084019391929182900301818887803b158015610c6e57600080fd5b505af1158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b505191505b5092915050565b600054600160a060020a03163314610cbb57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b6000610d29612b3a565b506000828152600260208181526040928390208351606081018552815481526001820154600160a060020a0390811693820184905291909301541692820192909252901515610d7b5760009150610c9d565b8060200151600160a060020a03166389ae1c906040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610dbd57600080fd5b505af1158015610dd1573d6000803e3d6000fd5b505050506040513d6020811015610de757600080fd5b50518151604080517f4ee2cd7e000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152602482019390935290519190921691634ee2cd7e9160448083019260209291908290030181600087803b158015610c6e57600080fd5b6000610e62612b3a565b600080610e6d612ac5565b606088015160001080610e84575060808801516001145b1515610f00576040805160e560020a62461bcd02815260206004820152603460248201527f706572696f644c656e67746820657175616c20302072657175697265206e756d60448201527f6265724f66506572696f647320746f2062652031000000000000000000000000606482015290519081900360840190fd5b60046000610f0d8d612904565b81526020808201929092526040908101600090812082516060810184528154808252600183015495820195909552600290910154600160a060020a0316928101929092529095501015611066578a600160a060020a031663e1758bd86040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610f9857600080fd5b505af1158015610fac573d6000803e3d6000fd5b505050506040513d6020811015610fc257600080fd5b50518451604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038f811660248301526044820193909352905191909216916323b872dd9160648083019260209291908290030181600087803b15801561103957600080fd5b505af115801561104d573d6000803e3d6000fd5b505050506040513d602081101561106357600080fd5b50505b60408085015160208087015183517f88737b5e000000000000000000000000000000000000000000000000000000008152600260048201526024810191909152336044820152600160a060020a038f81166064830152935193909216926388737b5e9260848082019392918290030181600087803b1580156110e757600080fd5b505af11580156110fb573d6000803e3d6000fd5b505050506040513d602081101561111157600080fd5b50519250859150600160a060020a038216151561112c573391505b60408051610160810182528b815289516020808301919091528183018c90528a01516060820152600160a060020a038981166080830152918a015160a082015290831660c082015260e081018960036020908102919091015182520189600460200201518152602001600081526020016080604051908101604052806000815260200160008152602001600081526020016000815250815250905080600360008d600160a060020a0316600160a060020a03168152602001908152602001600020600085600019166000191681526020019081526020016000206000820151816000019060001916905560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a815481600160a060020a030219169083600160a060020a0316021790555060a0820151816005015560c08201518160060160006101000a815481600160a060020a030219169083600160a060020a0316021790555060e082015181600701556101008201518160080155610120820151816009015561014082015181600a019060046112d0929190612b5a565b509050508360400151600160a060020a031683600019168c600160a060020a03167f5b4cba14eb387b69d923b37c2989ce3da21ca17cfebd07644b8b7ff1f4cec7df8d8d8d8d8960405180866000191660001916815260200185815260200184600560200280838360005b8381101561135357818101518382015260200161133b565b5050505090500183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019550505050505060405180910390a460408051606081018252438152600160a060020a03808e1660208084019182528885018051841685870190815260008a815260028085528882209751885594516001808901805492891673ffffffffffffffffffffffffffffffffffffffff19938416179055925197909501805497871697909516969096179093555185517f339e23d1000000000000000000000000000000000000000000000000000000008152600481018a905260248101939093523360448401529451949092169363339e23d193606480840194938390030190829087803b15801561147a57600080fd5b505af115801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b50929b9a5050505050505050505050565b60006114bf612b3a565b600084815260026020819052604090912001548490600160a060020a03163314611521576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612bd5833981519152604482015290519081900360640190fd5b60008581526002602081815260408084208151606081018352815481526001820154600160a060020a03908116828601819052929095015490941684830152845260038252808420898552909152909120600901549092501561158357600080fd5b602080830151600160a060020a03908116600090815260038352604080822089835290935291909120600601541615156115bc57600080fd5b83600114156115f157602080830151600160a060020a0316600090815260038252604080822088835290925220426009909101555b6020808301516040805187815290518893600160a060020a03909316927fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc0928290030190a3506001949350505050565b600061164b612b3a565b506000828152600260208181526040928390208351606081018552815481526001820154600160a060020a039081169382018490529190930154169282019290925290151561169d57600091506117a0565b8060200151600160a060020a03166389ae1c906040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156116df57600080fd5b505af11580156116f3573d6000803e3d6000fd5b505050506040513d602081101561170957600080fd5b50518151604080517f981b24d0000000000000000000000000000000000000000000000000000000008152600481019290925251600160a060020a039092169163981b24d0916024808201926020929091908290030181600087803b15801561177157600080fd5b505af1158015611785573d6000803e3d6000fd5b505050506040513d602081101561179b57600080fd5b505191505b50919050565b6040805160208082018590528183018690526c01000000000000000000000000600160a060020a038516026060830152825160548184030181526074909201928390528151600093918291908401908083835b602083106118185780518252601f1990920191602091820191016117f9565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120979650505050505050565b600160a060020a03821660009081526003602090815260408083208684529091528120600a01826004811061187d57fe5b0154949350505050565b6000611891612ac5565b600160a060020a0383811660009081526003602081815260408084208985528252808420815161016081018352815481526001820154938101939093526002810154838301529283015460608301526004808401548616608080850191909152600585015460a0850152600685015490961660c0840152600784015460e08401526008840154610100840152600984015461012084015281519586019182905293948594929392610140850192600a8501919082845b8154815260200190600101908083116119475750505091909252505050600160a060020a03861660009081526003602090815260408083208a8452909152902060098101549194509250151561199c57600080fd5b6119a8868660016121f8565b6000600184015560208401519091506119c890829063ffffffff612a0d16565b93506000841115611b4c5784600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611a1157600080fd5b505af1158015611a25573d6000803e3d6000fd5b505050506040513d6020811015611a3b57600080fd5b505160c0840151604080517f6407e43200000000000000000000000000000000000000000000000000000000815260048101889052600160a060020a039283166024820152888316604482015290519190921691636407e4329160648083019260209291908290030181600087803b158015611ab657600080fd5b505af1158015611aca573d6000803e3d6000fd5b505050506040513d6020811015611ae057600080fd5b50511515611aed57600080fd5b611afc81600a84016001610a8e565b600b83015560c0830151604080518681529051600160a060020a03928316928992908916917f13f7471cab9806ac4ff5d80ae879babfbf1081e240d05c4450b75f69c626cb2e9181900360200190a45b5060209091015160019091015592915050565b60008181526002602081905260408220015481908390600160a060020a03163314611bc2576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612bd5833981519152604482015290519081900360640190fd5b600084815260026020526040902060010154600160a060020a03169150811515611bef5760009250611d04565b81600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611c2d57600080fd5b505af1158015611c41573d6000803e3d6000fd5b505050506040513d6020811015611c5757600080fd5b5051604080517fb9a04cdd000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015289811660248301526044820189905285811660648301529151919092169163b9a04cdd9160848083019260209291908290030181600087803b158015611cd557600080fd5b505af1158015611ce9573d6000803e3d6000fd5b505050506040513d6020811015611cff57600080fd5b505192505b5050949350505050565b6000611d18612ac5565b600160a060020a0383811660009081526003602081815260408084208985528252808420815161016081018352815481526001820154938101939093526002810154838301529283015460608301526004808401548616608080850191909152600585015460a0850152600685015490961660c0840152600784015460e08401526008840154610100840152600984015461012084015281519586019182905293948594929392610140850192600a8501919082845b815481526020019060010190808311611dce5750505091909252505050600160a060020a03861660009081526003602090815260408083208a84529091529020600981015491945092501515611e2357600080fd5b611e2f868660026121f8565b600060038401556060840151909150611e4f90829063ffffffff612a0d16565b93506000841115611fd35784600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611e9857600080fd5b505af1158015611eac573d6000803e3d6000fd5b505050506040513d6020811015611ec257600080fd5b505160c0840151604080517f634965da00000000000000000000000000000000000000000000000000000000815260048101889052600160a060020a03928316602482015288831660448201529051919092169163634965da9160648083019260209291908290030181600087803b158015611f3d57600080fd5b505af1158015611f51573d6000803e3d6000fd5b505050506040513d6020811015611f6757600080fd5b50511515611f7457600080fd5b611f8381600a84016002610a8e565b600c83015560c0830151604080518681529051600160a060020a03928316928992908916917f7dd55ea53ce2c347b544c257b778e1dd6638f232fa6b94320e740440e72b4b879181900360200190a45b5060609091015160039091015592915050565b60008181526002602081905260408220015481908390600160a060020a03163314612049576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612bd5833981519152604482015290519081900360640190fd5b600084815260026020526040902060010154600160a060020a031691508115156120765760009250612183565b81600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156120b457600080fd5b505af11580156120c8573d6000803e3d6000fd5b505050506040513d60208110156120de57600080fd5b5051604080517feaf994b200000000000000000000000000000000000000000000000000000000815260048101899052600160a060020a03888116602483015285811660448301529151919092169163eaf994b29160648083019260209291908290030181600087803b15801561215457600080fd5b505af1158015612168573d6000803e3d6000fd5b505050506040513d602081101561217e57600080fd5b505192505b50509392505050565b600080808084816020020151156121aa576121a787876106fb565b93505b6020850151156121c1576121be8787611887565b92505b6040850151156121d8576121d58787611d0e565b91505b6060850151156121ef576121ec8787612429565b90505b93509350935093565b6000612202612ac5565b6000806003851115612284576040805160e560020a62461bcd02815260206004820152602660248201527f73686f756c6420626520696e207468652072656465656d6564506572696f647360448201527f2072616e67650000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0386811660009081526003602081815260408084208c8552825292839020835161016081018552815481526001820154928101929092526002810154828501529182015460608201526004808301548516608080840191909152600584015460a0840152600684015490951660c0830152600783015460e0830152600883015461010083015260098301546101208301528351948501938490529093919261014085019291600a85019182845b8154815260200190600101908083116123385750505050508152505092508261012001516000141561236d576000935061241f565b60008360e0015111156123a35760e083015161012084015161239690429063ffffffff612a3616565b81151561239f57fe5b0491505b60e083015115806123b957508261010001518210155b156123f1576101408301516123ea9086600481106123d357fe5b60200201516101008501519063ffffffff612a3616565b905061241b565b61014083015161241890866004811061240657fe5b6020020151839063ffffffff612a3616565b90505b8093505b5050509392505050565b6000612433612ac5565b600160a060020a0383811660009081526003602081815260408084208985528252808420815161016081018352815481526001820154938101939093526002810154838301529283015460608301526004808401548616608080850191909152600585015460a0850152600685015490961660c0840152600784015460e08401526008840154610100840152600984015461012084015281519586019182905293948594929392610140850192600a8501919082845b8154815260200190600101908083116124e95750505091909252505050600160a060020a03861660009081526003602090815260408083208a8452909152902060098101549194509250151561253e57600080fd5b61254a868660036121f8565b600060058401556004830154909150600160a060020a031615801590612574575060008360a00151115b1561271f5760a083015161258f90829063ffffffff612a0d16565b9350600084111561271f5784600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156125d857600080fd5b505af11580156125ec573d6000803e3d6000fd5b505050506040513d602081101561260257600080fd5b5051608084015160c0850151604080517fb9a04cdd000000000000000000000000000000000000000000000000000000008152600160a060020a039384166004820152918316602483015260448201889052888316606483015251919092169163b9a04cdd9160848083019260209291908290030181600087803b15801561268957600080fd5b505af115801561269d573d6000803e3d6000fd5b505050506040513d60208110156126b357600080fd5b505115156126c057600080fd5b6126cf81600a84016003610a8e565b600d83015560c0830151604080518681529051600160a060020a03928316928992908916917f5a66e28cdcd3bc22082d9f07be2b6bed5f50f349e5d89f655d750ecdd19883749181900360200190a45b5060a09091015160059091015592915050565b600054600160a060020a0316331461274957600080fd5b61275281612a48565b50565b600160a060020a03908116600090815260036020908152604080832094835293905291909120600401541690565b60008181526002602081905260408220015481908390600160a060020a031633146127e6576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612bd5833981519152604482015290519081900360640190fd5b600084815260026020526040902060010154600160a060020a031691508115156128135760009250612183565b81600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561285157600080fd5b505af1158015612865573d6000803e3d6000fd5b505050506040513d602081101561287b57600080fd5b5051604080517f6e94d27800000000000000000000000000000000000000000000000000000000815260048101899052600160a060020a038881166024830152858116604483015291519190921691636e94d2789160648083019260209291908290030181600087803b15801561215457600080fd5b60015481565b81810182811015610b2757fe5b600081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561294457600080fd5b505af1158015612958573d6000803e3d6000fd5b505050506040513d602081101561296e57600080fd5b5051604080517f1c4d5608000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a03858116602483015291519190921691631c4d56089160448083019260209291908290030181600087803b1580156129db57600080fd5b505af11580156129ef573d6000803e3d6000fd5b505050506040513d6020811015612a0557600080fd5b505192915050565b6000821515612a1e57506000610b27565b50818102818382811515612a2e57fe5b0414610b2757fe5b600082821115612a4257fe5b50900390565b600160a060020a0381161515612a5d57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6101c060405190810160405280600080191681526020016000815260200160008152602001600081526020016000600160a060020a03168152602001600081526020016000600160a060020a03168152602001600081526020016000815260200160008152602001612b35612b98565b905290565b604080516060810182526000808252602082018190529181019190915290565b8260048101928215612b88579160200282015b82811115612b88578251825591602001919060010190612b6d565b50612b94929150612bb7565b5090565b6080604051908101604052806004906020820280388339509192915050565b612bd191905b80821115612b945760008155600101612bbd565b9056006f6e6c7920566f74696e674d616368696e650000000000000000000000000000a165627a7a723058203eb77c5f991afb55253f4817794f31497dd9415d3e3de62dab94dfde80e402e80029", "deployedBytecode": "0x6080604052600436106101505763ffffffff60e060020a60003504166302506804811461015557806306e3a978146101945780630d5e1e82146102135780631c3a5713146102495780632ac2af531461026d5780633a256daa14610287578063465ff7d7146102ab5780636046f71d146102d25780636b8eb403146102f6578063715018a61461031a5780638da5cb5b1461032f5780639588378e146103605780639a55054c146103845780639d4c162d146103f4578063b551c37314610423578063b74fd44f1461043b578063b7c251c314610462578063bb1c935114610489578063bea75f28146104ad578063cd3ce306146104da578063d29b5d2f146104fe578063d58bf09a14610525578063e074ee551461059d578063e63b681e146105c4578063f2fde38b146105e8578063f70bbb9a14610609578063f81f8bf61461062d578063f98e87ba14610654575b600080fd5b34801561016157600080fd5b5061016d600435610669565b604080519384526020840192909252600160a060020a031682820152519081900360600190f35b3480156101a057600080fd5b506101b8600160a060020a0360043516602435610693565b604080519a8b5260208b0199909952898901979097526060890195909552600160a060020a03938416608089015260a088019290925290911660c086015260e085015261010084015261012083015251908190036101400190f35b34801561021f57600080fd5b50610237600435600160a060020a03602435166106fb565b60408051918252519081900360200190f35b34801561025557600080fd5b50610237600435600160a060020a0360243516610aff565b34801561027957600080fd5b50610285600435610b2d565b005b34801561029357600080fd5b50610237600435600160a060020a0360243516610b49565b3480156102b757600080fd5b50610237600435602435600160a060020a0360443516610b71565b3480156102de57600080fd5b50610237600435600160a060020a0360243516610bce565b34801561030257600080fd5b50610237600160a060020a0360043516602435610bf6565b34801561032657600080fd5b50610285610ca4565b34801561033b57600080fd5b50610344610d10565b60408051600160a060020a039092168252519081900360200190f35b34801561036c57600080fd5b50610237600160a060020a0360043516602435610d1f565b34801561039057600080fd5b506040805160a08082019092526102379160048035600160a060020a031692602435926044359236929091610104919060649060059083908390808284375093965050600160a060020a038435811695506020909401359093169250610e58915050565b34801561040057600080fd5b5061040f6004356024356114b5565b604080519115158252519081900360200190f35b34801561042f57600080fd5b50610237600435611641565b34801561044757600080fd5b50610237600435602435600160a060020a03604435166117a6565b34801561046e57600080fd5b50610237600435600160a060020a036024351660443561184c565b34801561049557600080fd5b50610237600435600160a060020a0360243516611887565b3480156104b957600080fd5b5061040f600160a060020a0360043581169060243516604435606435611b5f565b3480156104e657600080fd5b50610237600435600160a060020a0360243516611d0e565b34801561050a57600080fd5b5061040f600435600160a060020a0360243516604435611fe6565b34801561053157600080fd5b50604080516080818101909252610577916004803592600160a060020a03602435169236929160c491604490849083908390808284375093965061218c95505050505050565b604080519485526020850193909352838301919091526060830152519081900360800190f35b3480156105a957600080fd5b50610237600435600160a060020a03602435166044356121f8565b3480156105d057600080fd5b50610237600435600160a060020a0360243516612429565b3480156105f457600080fd5b50610285600160a060020a0360043516612732565b34801561061557600080fd5b50610344600435600160a060020a0360243516612755565b34801561063957600080fd5b5061040f600435600160a060020a0360243516604435612783565b34801561066057600080fd5b506102376128f1565b600460205260009081526040902080546001820154600290920154909190600160a060020a031683565b6003602081815260009384526040808520909152918352912080546001820154600283015493830154600484015460058501546006860154600787015460088801546009909801549698959795969495600160a060020a03948516959394909216929091908a565b6000610705612ac5565b600160a060020a0383811660009081526003602081815260408084208985528252808420815161016081018352815481526001820154938101939093526002810154838301529283015460608301526004808401548616608080850191909152600585015460a0850152600685015490961660c0840152600784015460e08401526008840154610100840152600984015461012084015281519586019182905293948594929392610140850192600a8501919082845b8154815260200190600101908083116107bb5750505091909252505050600160a060020a03861660009081526003602090815260408083208a8452909152902060098101549194509250151561081057600080fd5b61081c868660006121f8565b6000600284018190556040850151820295509091508413156109575784600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561087657600080fd5b505af115801561088a573d6000803e3d6000fd5b505050506040513d60208110156108a057600080fd5b505160c0840151604080517feaf994b200000000000000000000000000000000000000000000000000000000815260048101889052600160a060020a03928316602482015288831660448201529051919092169163eaf994b29160648083019260209291908290030181600087803b15801561091b57600080fd5b505af115801561092f573d6000803e3d6000fd5b505050506040513d602081101561094557600080fd5b5051151561095257600080fd5b610a7d565b6000841215610a7d5784600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561099e57600080fd5b505af11580156109b2573d6000803e3d6000fd5b505050506040513d60208110156109c857600080fd5b505160c0840151604080517f6e94d27800000000000000000000000000000000000000000000000000000000815260008881036004830152600160a060020a039384166024830152898416604483015291519290931692636e94d2789260648083019360209383900390910190829087803b158015610a4657600080fd5b505af1158015610a5a573d6000803e3d6000fd5b505050506040513d6020811015610a7057600080fd5b50511515610a7d57600080fd5b8315610aec57610a9c81600a840160005b01549063ffffffff6128f716565b600a83015560c0830151604080518681529051600160a060020a03928316928992908916917feab8bc4bf2fd6ce5634b8e75023e0e48367e68249ce2aa2c0ef7c0efe5648bee9181900360200190a45b5060409091015160029091015592915050565b600160a060020a03811660009081526003602090815260408083208584529091529020600501545b92915050565b600054600160a060020a03163314610b4457600080fd5b600155565b600160a060020a03166000908152600360209081526040808320938352929052206009015490565b600080610b7f8585856117a6565b6000818152600460205260409020958655600186019490945550506002909201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03939093169290921790915590565b600160a060020a03166000908152600360208181526040808420948452939052919020015490565b60008181526002602090815260408083206001015481517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a039182166004820181905292519293918716926370a082319260248084019391929182900301818887803b158015610c6e57600080fd5b505af1158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b505191505b5092915050565b600054600160a060020a03163314610cbb57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b6000610d29612b3a565b506000828152600260208181526040928390208351606081018552815481526001820154600160a060020a0390811693820184905291909301541692820192909252901515610d7b5760009150610c9d565b8060200151600160a060020a03166389ae1c906040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610dbd57600080fd5b505af1158015610dd1573d6000803e3d6000fd5b505050506040513d6020811015610de757600080fd5b50518151604080517f4ee2cd7e000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152602482019390935290519190921691634ee2cd7e9160448083019260209291908290030181600087803b158015610c6e57600080fd5b6000610e62612b3a565b600080610e6d612ac5565b606088015160001080610e84575060808801516001145b1515610f00576040805160e560020a62461bcd02815260206004820152603460248201527f706572696f644c656e67746820657175616c20302072657175697265206e756d60448201527f6265724f66506572696f647320746f2062652031000000000000000000000000606482015290519081900360840190fd5b60046000610f0d8d612904565b81526020808201929092526040908101600090812082516060810184528154808252600183015495820195909552600290910154600160a060020a0316928101929092529095501015611066578a600160a060020a031663e1758bd86040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610f9857600080fd5b505af1158015610fac573d6000803e3d6000fd5b505050506040513d6020811015610fc257600080fd5b50518451604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038f811660248301526044820193909352905191909216916323b872dd9160648083019260209291908290030181600087803b15801561103957600080fd5b505af115801561104d573d6000803e3d6000fd5b505050506040513d602081101561106357600080fd5b50505b60408085015160208087015183517f88737b5e000000000000000000000000000000000000000000000000000000008152600260048201526024810191909152336044820152600160a060020a038f81166064830152935193909216926388737b5e9260848082019392918290030181600087803b1580156110e757600080fd5b505af11580156110fb573d6000803e3d6000fd5b505050506040513d602081101561111157600080fd5b50519250859150600160a060020a038216151561112c573391505b60408051610160810182528b815289516020808301919091528183018c90528a01516060820152600160a060020a038981166080830152918a015160a082015290831660c082015260e081018960036020908102919091015182520189600460200201518152602001600081526020016080604051908101604052806000815260200160008152602001600081526020016000815250815250905080600360008d600160a060020a0316600160a060020a0316815260200190815260200160002060008560001916600019168152602001908152602001600020600082015181600001906000191690556020820151816001015560408201518