UNPKG

@daostack/arc-experimental

Version:

A platform for building DAOs

484 lines (483 loc) 40.7 kB
{ "contractName": "GenericScheme", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_avatar", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, { "indexed": false, "internalType": "bytes", "name": "_callData", "type": "bytes" }, { "indexed": false, "internalType": "uint256", "name": "_value", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "_descriptionHash", "type": "string" } ], "name": "NewCallProposal", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_avatar", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } ], "name": "ProposalDeleted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_avatar", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, { "indexed": false, "internalType": "bytes", "name": "_genericCallReturnValue", "type": "bytes" } ], "name": "ProposalExecuted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_avatar", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, { "indexed": false, "internalType": "int256", "name": "_param", "type": "int256" } ], "name": "ProposalExecutedByVotingMachine", "type": "event" }, { "inputs": [], "name": "avatar", "outputs": [ { "internalType": "contract Avatar", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "_stakingToken", "type": "address" }, { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } ], "name": "balanceOfStakingToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "address", "name": "_beneficiary", "type": "address" }, { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } ], "name": "burnReputation", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "contractToCall", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } ], "name": "execute", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, { "internalType": "int256", "name": "_decision", "type": "int256" } ], "name": "executeProposal", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } ], "name": "getTotalReputationSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract Avatar", "name": "_avatar", "type": "address" }, { "internalType": "contract IntVoteInterface", "name": "_votingMachine", "type": "address" }, { "internalType": "uint256[11]", "name": "_votingParams", "type": "uint256[11]" }, { "internalType": "address", "name": "_voteOnBehalf", "type": "address" }, { "internalType": "bytes32", "name": "_voteParamsHash", "type": "bytes32" }, { "internalType": "address", "name": "_contractToCall", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "address", "name": "_beneficiary", "type": "address" }, { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } ], "name": "mintReputation", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "organizationProposals", "outputs": [ { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bool", "name": "exist", "type": "bool" }, { "internalType": "bool", "name": "passed", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "proposalsBlockNumber", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "_callData", "type": "bytes" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "string", "name": "_descriptionHash", "type": "string" } ], "name": "proposeCall", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } ], "name": "reputationOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "_stakingToken", "type": "address" }, { "internalType": "address", "name": "_beneficiary", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } ], "name": "stakingTokenTransfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "voteParamsHash", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "votingMachine", "outputs": [ { "internalType": "contract IntVoteInterface", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50611d8a806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063b20d7c2611610097578063d29b5d2f11610066578063d29b5d2f146103dc578063d8145e2d1461040e578063e751f271146104bc578063f81f8bf6146104d957610100565b8063b20d7c2614610246578063b551c3731461024e578063bea75f281461026b578063cf65725d146102a757610100565b80637a5cb92c116100d35780637a5cb92c146101775780639588378e14610194578063985e313f146101c05780639d4c162d1461020f57610100565b80633edf7ca1146101055780634ea2c7ec146101295780635aef7de6146101435780636b8eb4031461014b575b600080fd5b61010d61050b565b604080516001600160a01b039092168252519081900360200190f35b61013161051a565b60408051918252519081900360200190f35b61010d610520565b6101316004803603604081101561016157600080fd5b506001600160a01b03813516906020013561052f565b6101316004803603602081101561018d57600080fd5b5035610609565b610131600480360360408110156101aa57600080fd5b506001600160a01b03813516906020013561061b565b61020d60048036036102008110156101d757600080fd5b506001600160a01b038135811691602081013582169160408201916101a08101358216916101c0820135916101e001351661074c565b005b6102326004803603604081101561022557600080fd5b50803590602001356107aa565b604080519115158252519081900360200190f35b61010d610999565b6101316004803603602081101561026457600080fd5b50356109a8565b6102326004803603608081101561028157600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610c3f565b610131600480360360608110156102bd57600080fd5b8101906020810181356401000000008111156102d857600080fd5b8201836020820111156102ea57600080fd5b8035906020019184600183028401116401000000008311171561030c57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595909490935060408101925060200135905064010000000081111561036757600080fd5b82018360208201111561037957600080fd5b8035906020019184600183028401116401000000008311171561039b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610da3945050505050565b610232600480360360608110156103f257600080fd5b508035906001600160a01b036020820135169060400135611128565b61042b6004803603602081101561042457600080fd5b5035611283565b604051808060200185815260200184151581526020018315158152602001828103825286818151815260200191508051906020019080838360005b8381101561047e578181015183820152602001610466565b50505050905090810190601f1680156104ab5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b61020d600480360360208110156104d257600080fd5b503561133d565b610232600480360360608110156104ef57600080fd5b508035906001600160a01b036020820135169060400135611778565b6034546001600160a01b031681565b60355481565b6033546001600160a01b031681565b60345460009082906001600160a01b03163314610588576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603354604080516370a0823160e01b81526001600160a01b0392831660048201529051918616916370a0823191602480820192602092909190829003018186803b1580156105d557600080fd5b505afa1580156105e9573d6000803e3d6000fd5b505050506040513d60208110156105ff57600080fd5b5051949350505050565b60366020526000908152604090205481565b60345460009082906001600160a01b03163314610674576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156106c257600080fd5b505afa1580156106d6573d6000803e3d6000fd5b505050506040513d60208110156106ec57600080fd5b505160008481526036602090815260409182902054825163277166bf60e11b81526001600160a01b03898116600483015260248201929092529251931692634ee2cd7e926044808201939291829003018186803b1580156105d557600080fd5b61078386868487600b806020026040519081016040528092919082600b6020028082843760009201919091525089915061189e9050565b603880546001600160a01b0319166001600160a01b03929092169190911790555050505050565b60345460009083906001600160a01b03163314610803576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b6000848152603760205260409020600281015460ff16610864576040805162461bcd60e51b81526020600482015260176024820152761b5d5cdd0818994818481b1a5d99481c1c9bdc1bdcd85b604a1b604482015290519081900360640190fd5b6002810154610100900460ff16156108ba576040805162461bcd60e51b815260206004820152601460248201527363616e6e6f74206578656375746520747769636560601b604482015290519081900360640190fd5b83600114156108e25760028101805461ff0019166101001790556108dd8561133d565b61094b565b6000858152603760205260408120906108fb8282611c26565b506000600182018190556002909101805461ffff1916905560335460405187926001600160a01b03909216917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a35b60335460408051868152905187926001600160a01b0316917f25d4c89430c1f10c60c292556941e3e624ec1ec04972a5da46cee1b352429cbe919081900360200190a3506001949350505050565b6038546001600160a01b031681565b60345460009082906001600160a01b03163314610a01576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a4f57600080fd5b505afa158015610a63573d6000803e3d6000fd5b505050506040513d6020811015610a7957600080fd5b505160408051632074193160e21b815230600482015290516001600160a01b03909216916381d064c491602480820192602092909190829003018186803b158015610ac357600080fd5b505afa158015610ad7573d6000803e3d6000fd5b505050506040513d6020811015610aed57600080fd5b5051610b3b576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8957600080fd5b505afa158015610b9d573d6000803e3d6000fd5b505050506040513d6020811015610bb357600080fd5b5051600084815260366020908152604091829020548251630981b24d60e41b8152600481019190915291516001600160a01b039093169263981b24d0926024808201939291829003018186803b158015610c0c57600080fd5b505afa158015610c20573d6000803e3d6000fd5b505050506040513d6020811015610c3657600080fd5b50519392505050565b60345460009082906001600160a01b03163314610c98576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ce657600080fd5b505afa158015610cfa573d6000803e3d6000fd5b505050506040513d6020811015610d1057600080fd5b50516040805163dab0efff60e01b81526001600160a01b0389811660048301528881166024830152604482018890529151919092169163dab0efff9160648083019260209291908290030181600087803b158015610d6d57600080fd5b505af1158015610d81573d6000803e3d6000fd5b505050506040513d6020811015610d9757600080fd5b50519695505050505050565b60335460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610de857600080fd5b505afa158015610dfc573d6000803e3d6000fd5b505050506040513d6020811015610e1257600080fd5b505160408051632074193160e21b815230600482015290516001600160a01b03909216916381d064c491602480820192602092909190829003018186803b158015610e5c57600080fd5b505afa158015610e70573d6000803e3d6000fd5b505050506040513d6020811015610e8657600080fd5b5051610ed4576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b60345460355460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b0391821660648401525160009391909116916388737b5e91608480830192602092919082900301818787803b158015610f3f57600080fd5b505af1158015610f53573d6000803e3d6000fd5b505050506040513d6020811015610f6957600080fd5b505160408051608081018252878152602081810188905260018284015260006060830181905284815260378252929092208151805194955091939092610fb3928492910190611c6d565b5060208281015160018301556040808401516002909301805460609586015115156101000261ff001995151560ff1990921691909117949094169390931790925560008481526036825282812043905560335483518084018a90528581528a5195810195909552895186956001600160a01b03909216947f36418f82d814fb021ca04ebdc2c4a3cd69f719851f597c489bca2ed245e8c8ad948c948c948c949093849390840192608085019291890191908190849084905b8381101561108357818101518382015260200161106b565b50505050905090810190601f1680156110b05780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156110e35781810151838201526020016110cb565b50505050905090810190601f1680156111105780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a3949350505050565b60345460009082906001600160a01b03163314611181576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156111cf57600080fd5b505afa1580156111e3573d6000803e3d6000fd5b505050506040513d60208110156111f957600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b15801561124e57600080fd5b505af1158015611262573d6000803e3d6000fd5b505050506040513d602081101561127857600080fd5b505195945050505050565b60376020908152600091825260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290929183919083018282801561131a5780601f106112ef5761010080835404028352916020019161131a565b820191906000526020600020905b8154815290600101906020018083116112fd57829003601f168201915b50505050600183015460029093015491929160ff80821692506101009091041684565b6000818152603760205260409020600281015460ff1661139e576040805162461bcd60e51b81526020600482015260176024820152761b5d5cdd0818994818481b1a5d99481c1c9bdc1bdcd85b604a1b604482015290519081900360640190fd5b6002810154610100900460ff166113e65760405162461bcd60e51b8152600401808060200182810382526026815260200180611d2f6026913960400191505060405180910390fd5b60028101805460ff1916905560335460408051638da5cb5b60e01b8152905160609260009283926001600160a01b0390921691638da5cb5b91600480820192602092909190829003018186803b15801561143f57600080fd5b505afa158015611453573d6000803e3d6000fd5b505050506040513d602081101561146957600080fd5b505160385460018681015460405163057e2c8b60e31b81526001600160a01b0393841660048201818152604483018490526060602484019081528b54600260001997821615610100029790970116959095046064840181905296975094871695632bf164589591948b949390916084909101908590801561152b5780601f106115005761010080835404028352916020019161152b565b820191906000526020600020905b81548152906001019060200180831161150e57829003601f168201915b5050945050505050600060405180830381600087803b15801561154d57600080fd5b505af1158015611561573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561158a57600080fd5b8151602083018051604051929492938301929190846401000000008211156115b157600080fd5b9083019060208201858111156115c657600080fd5b82516401000000008111828201881017156115e057600080fd5b82525081516020918201929091019080838360005b8381101561160d5781810151838201526020016115f5565b50505050905090810190601f16801561163a5780820380516001836020036101000a031916815260200191505b50604052509195509193505082159050611761576000858152603760205260408120906116678282611c26565b506000600182018190556002909101805461ffff1916905560335460405187926001600160a01b03909216917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a3603354604080516020808252865181830152865189946001600160a01b0316937f1c57c986b085f821f3126bc24b5aba57ed92fe545788a34925528295cef240159389939092839283019185019080838360005b8381101561172257818101518382015260200161170a565b50505050905090810190601f16801561174f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a3611771565b60028401805460ff191660011790555b5050505050565b60345460009082906001600160a01b031633146117d1576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561181f57600080fd5b505afa158015611833573d6000803e3d6000fd5b505050506040513d602081101561184957600080fd5b50516040805163ddbfcc6b60e01b8152600481018890526001600160a01b0387811660248301529151919092169163ddbfcc6b9160448083019260209291908290030181600087803b15801561124e57600080fd5b6001600160a01b0384166118f9576040805162461bcd60e51b815260206004820152601c60248201527f766f74696e674d616368696e652063616e6e6f74206265207a65726f00000000604482015290519081900360640190fd5b61190285611b07565b603480546001600160a01b0319166001600160a01b03861617905582611afe576040516307b4e1e360e01b815284906001600160a01b038216906307b4e1e39085908590600401808361016080838360005b8381101561196c578181015183820152602001611954565b50505050905001826001600160a01b031681526020019250505060206040518083038186803b15801561199e57600080fd5b505afa1580156119b2573d6000803e3d6000fd5b505050506040513d60208110156119c857600080fd5b505160358190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b158015611a1a57600080fd5b505afa158015611a2e573d6000803e3d6000fd5b505050506040513d6101a0811015611a4557600080fd5b5051905080611af757604051638894c41b60e01b81526001600160a01b03831690638894c41b9086908690600401808361016080838360005b83811015611a96578181015183820152602001611a7e565b50505050905001826001600160a01b0316815260200192505050602060405180830381600087803b158015611aca57600080fd5b505af1158015611ade573d6000803e3d6000fd5b505050506040513d6020811015611af457600080fd5b50505b5050611771565b50506035555050565b600054610100900460ff1680611b205750611b20611c20565b80611b2e575060005460ff16155b611b695760405162461bcd60e51b815260040180806020018281038252602e815260200180611d01602e913960400191505060405180910390fd5b600054610100900460ff16158015611b94576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216611bef576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b0384161790558015611c1c576000805461ff00191690555b5050565b303b1590565b50805460018160011615610100020316600290046000825580601f10611c4c5750611c6a565b601f016020900490600052602060002090810190611c6a9190611ceb565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611cae57805160ff1916838001178555611cdb565b82800160010185558215611cdb579182015b82811115611cdb578251825591602001919060010190611cc0565b50611ce7929150611ceb565b5090565b5b80821115611ce75760008155600101611cec56fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656470726f706f73616c206d7573742070617373656420627920766f74696e67206d616368696e65a2646970667358221220a4d97a1ee67519b4d508cb3ebf55a4b6d7e828467b705fc7de03255898265c9c64736f6c634300060c0033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063b20d7c2611610097578063d29b5d2f11610066578063d29b5d2f146103dc578063d8145e2d1461040e578063e751f271146104bc578063f81f8bf6146104d957610100565b8063b20d7c2614610246578063b551c3731461024e578063bea75f281461026b578063cf65725d146102a757610100565b80637a5cb92c116100d35780637a5cb92c146101775780639588378e14610194578063985e313f146101c05780639d4c162d1461020f57610100565b80633edf7ca1146101055780634ea2c7ec146101295780635aef7de6146101435780636b8eb4031461014b575b600080fd5b61010d61050b565b604080516001600160a01b039092168252519081900360200190f35b61013161051a565b60408051918252519081900360200190f35b61010d610520565b6101316004803603604081101561016157600080fd5b506001600160a01b03813516906020013561052f565b6101316004803603602081101561018d57600080fd5b5035610609565b610131600480360360408110156101aa57600080fd5b506001600160a01b03813516906020013561061b565b61020d60048036036102008110156101d757600080fd5b506001600160a01b038135811691602081013582169160408201916101a08101358216916101c0820135916101e001351661074c565b005b6102326004803603604081101561022557600080fd5b50803590602001356107aa565b604080519115158252519081900360200190f35b61010d610999565b6101316004803603602081101561026457600080fd5b50356109a8565b6102326004803603608081101561028157600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610c3f565b610131600480360360608110156102bd57600080fd5b8101906020810181356401000000008111156102d857600080fd5b8201836020820111156102ea57600080fd5b8035906020019184600183028401116401000000008311171561030c57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595909490935060408101925060200135905064010000000081111561036757600080fd5b82018360208201111561037957600080fd5b8035906020019184600183028401116401000000008311171561039b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610da3945050505050565b610232600480360360608110156103f257600080fd5b508035906001600160a01b036020820135169060400135611128565b61042b6004803603602081101561042457600080fd5b5035611283565b604051808060200185815260200184151581526020018315158152602001828103825286818151815260200191508051906020019080838360005b8381101561047e578181015183820152602001610466565b50505050905090810190601f1680156104ab5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b61020d600480360360208110156104d257600080fd5b503561133d565b610232600480360360608110156104ef57600080fd5b508035906001600160a01b036020820135169060400135611778565b6034546001600160a01b031681565b60355481565b6033546001600160a01b031681565b60345460009082906001600160a01b03163314610588576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603354604080516370a0823160e01b81526001600160a01b0392831660048201529051918616916370a0823191602480820192602092909190829003018186803b1580156105d557600080fd5b505afa1580156105e9573d6000803e3d6000fd5b505050506040513d60208110156105ff57600080fd5b5051949350505050565b60366020526000908152604090205481565b60345460009082906001600160a01b03163314610674576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156106c257600080fd5b505afa1580156106d6573d6000803e3d6000fd5b505050506040513d60208110156106ec57600080fd5b505160008481526036602090815260409182902054825163277166bf60e11b81526001600160a01b03898116600483015260248201929092529251931692634ee2cd7e926044808201939291829003018186803b1580156105d557600080fd5b61078386868487600b806020026040519081016040528092919082600b6020028082843760009201919091525089915061189e9050565b603880546001600160a01b0319166001600160a01b03929092169190911790555050505050565b60345460009083906001600160a01b03163314610803576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b6000848152603760205260409020600281015460ff16610864576040805162461bcd60e51b81526020600482015260176024820152761b5d5cdd0818994818481b1a5d99481c1c9bdc1bdcd85b604a1b604482015290519081900360640190fd5b6002810154610100900460ff16156108ba576040805162461bcd60e51b815260206004820152601460248201527363616e6e6f74206578656375746520747769636560601b604482015290519081900360640190fd5b83600114156108e25760028101805461ff0019166101001790556108dd8561133d565b61094b565b6000858152603760205260408120906108fb8282611c26565b506000600182018190556002909101805461ffff1916905560335460405187926001600160a01b03909216917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a35b60335460408051868152905187926001600160a01b0316917f25d4c89430c1f10c60c292556941e3e624ec1ec04972a5da46cee1b352429cbe919081900360200190a3506001949350505050565b6038546001600160a01b031681565b60345460009082906001600160a01b03163314610a01576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a4f57600080fd5b505afa158015610a63573d6000803e3d6000fd5b505050506040513d6020811015610a7957600080fd5b505160408051632074193160e21b815230600482015290516001600160a01b03909216916381d064c491602480820192602092909190829003018186803b158015610ac357600080fd5b505afa158015610ad7573d6000803e3d6000fd5b505050506040513d6020811015610aed57600080fd5b5051610b3b576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8957600080fd5b505afa158015610b9d573d6000803e3d6000fd5b505050506040513d6020811015610bb357600080fd5b5051600084815260366020908152604091829020548251630981b24d60e41b8152600481019190915291516001600160a01b039093169263981b24d0926024808201939291829003018186803b158015610c0c57600080fd5b505afa158015610c20573d6000803e3d6000fd5b505050506040513d6020811015610c3657600080fd5b50519392505050565b60345460009082906001600160a01b03163314610c98576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ce657600080fd5b505afa158015610cfa573d6000803e3d6000fd5b505050506040513d6020811015610d1057600080fd5b50516040805163dab0efff60e01b81526001600160a01b0389811660048301528881166024830152604482018890529151919092169163dab0efff9160648083019260209291908290030181600087803b158015610d6d57600080fd5b505af1158015610d81573d6000803e3d6000fd5b505050506040513d6020811015610d9757600080fd5b50519695505050505050565b60335460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610de857600080fd5b505afa158015610dfc573d6000803e3d6000fd5b505050506040513d6020811015610e1257600080fd5b505160408051632074193160e21b815230600482015290516001600160a01b03909216916381d064c491602480820192602092909190829003018186803b158015610e5c57600080fd5b505afa158015610e70573d6000803e3d6000fd5b505050506040513d6020811015610e8657600080fd5b5051610ed4576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b60345460355460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b0391821660648401525160009391909116916388737b5e91608480830192602092919082900301818787803b158015610f3f57600080fd5b505af1158015610f53573d6000803e3d6000fd5b505050506040513d6020811015610f6957600080fd5b505160408051608081018252878152602081810188905260018284015260006060830181905284815260378252929092208151805194955091939092610fb3928492910190611c6d565b5060208281015160018301556040808401516002909301805460609586015115156101000261ff001995151560ff1990921691909117949094169390931790925560008481526036825282812043905560335483518084018a90528581528a5195810195909552895186956001600160a01b03909216947f36418f82d814fb021ca04ebdc2c4a3cd69f719851f597c489bca2ed245e8c8ad948c948c948c949093849390840192608085019291890191908190849084905b8381101561108357818101518382015260200161106b565b50505050905090810190601f1680156110b05780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156110e35781810151838201526020016110cb565b50505050905090810190601f1680156111105780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a3949350505050565b60345460009082906001600160a01b03163314611181576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156111cf57600080fd5b505afa1580156111e3573d6000803e3d6000fd5b505050506040513d60208110156111f957600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b15801561124e57600080fd5b505af1158015611262573d6000803e3d6000fd5b505050506040513d602081101561127857600080fd5b505195945050505050565b60376020908152600091825260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290929183919083018282801561131a5780601f106112ef5761010080835404028352916020019161131a565b820191906000526020600020905b8154815290600101906020018083116112fd57829003601f168201915b50505050600183015460029093015491929160ff80821692506101009091041684565b6000818152603760205260409020600281015460ff1661139e576040805162461bcd60e51b81526020600482015260176024820152761b5d5cdd0818994818481b1a5d99481c1c9bdc1bdcd85b604a1b604482015290519081900360640190fd5b6002810154610100900460ff166113e65760405162461bcd60e51b8152600401808060200182810382526026815260200180611d2f6026913960400191505060405180910390fd5b60028101805460ff1916905560335460408051638da5cb5b60e01b8152905160609260009283926001600160a01b0390921691638da5cb5b91600480820192602092909190829003018186803b15801561143f57600080fd5b505afa158015611453573d6000803e3d6000fd5b505050506040513d602081101561146957600080fd5b505160385460018681015460405163057e2c8b60e31b81526001600160a01b0393841660048201818152604483018490526060602484019081528b54600260001997821615610100029790970116959095046064840181905296975094871695632bf164589591948b949390916084909101908590801561152b5780601f106115005761010080835404028352916020019161152b565b820191906000526020600020905b81548152906001019060200180831161150e57829003601f168201915b5050945050505050600060405180830381600087803b15801561154d57600080fd5b505af1158015611561573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561158a57600080fd5b8151602083018051604051929492938301929190846401000000008211156115b157600080fd5b9083019060208201858111156115c657600080fd5b82516401000000008111828201881017156115e057600080fd5b82525081516020918201929091019080838360005b8381101561160d5781810151838201526020016115f5565b50505050905090810190601f16801561163a5780820380516001836020036101000a031916815260200191505b50604052509195509193505082159050611761576000858152603760205260408120906116678282611c26565b506000600182018190556002909101805461ffff1916905560335460405187926001600160a01b03909216917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a3603354604080516020808252865181830152865189946001600160a01b0316937f1c57c986b085f821f3126bc24b5aba57ed92fe545788a34925528295cef240159389939092839283019185019080838360005b8381101561172257818101518382015260200161170a565b50505050905090810190601f16801561174f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a3611771565b60028401805460ff191660011790555b5050505050565b60345460009082906001600160a01b031633146117d1576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561181f57600080fd5b505afa158015611833573d6000803e3d6000fd5b505050506040513d602081101561184957600080fd5b50516040805163ddbfcc6b60e01b8152600481018890526001600160a01b0387811660248301529151919092169163ddbfcc6b9160448083019260209291908290030181600087803b15801561124e57600080fd5b6001600160a01b0384166118f9576040805162461bcd60e51b815260206004820152601c60248201527f766f74696e674d616368696e652063616e6e6f74206265207a65726f00000000604482015290519081900360640190fd5b61190285611b07565b603480546001600160a01b0319166001600160a01b03861617905582611afe576040516307b4e1e360e01b815284906001600160a01b038216906307b4e1e39085908590600401808361016080838360005b8381101561196c578181015183820152602001611954565b50505050905001826001600160a01b031681526020019250505060206040518083038186803b15801561199e57600080fd5b505afa1580156119b2573d6000803e3d6000fd5b505050506040513d60208110156119c857600080fd5b505160358190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b158015611a1a57600080fd5b505afa158015611a2e573d6000803e3d6000fd5b505050506040513d6101a0811015611a4557600080fd5b5051905080611af757604051638894c41b60e01b81526001600160a01b03831690638894c41b9086908690600401808361016080838360005b83811015611a96578181015183820152602001611a7e565b50505050905001826001600160a01b0316815260200192505050602060405180830381600087803b158015611aca57600080fd5b505af1158015611ade573d6000803e3d6000fd5b505050506040513d6020811015611af457600080fd5b50505b5050611771565b50506035555050565b600054610100900460ff1680611b205750611b20611c20565b80611b2e575060005460ff16155b611b695760405162461bcd60e51b815260040180806020018281038252602e815260200180611d01602e913960400191505060405180910390fd5b600054610100900460ff16158015611b94576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216611bef576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b0384161790558015611c1c576000805461ff00191690555b5050565b303b1590565b50805460018160011615610100020316600290046000825580601f10611c4c5750611c6a565b601f016020900490600052602060002090810190611c6a9190611ceb565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611cae57805160ff1916838001178555611cdb565b82800160010185558215611cdb579182015b82811115611cdb578251825591602001919060010190611cc0565b50611ce7929150611ceb565b5090565b5b80821115611ce75760008155600101611cec56fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656470726f706f73616c206d7573742070617373656420627920766f74696e67206d616368696e65a2646970667358221220a4d97a1ee67519b4d508cb3ebf55a4b6d7e828467b705fc7de03255898265c9c64736f6c634300060c0033", "linkReferences": {}, "deployedLinkReferences": {} }