From d110afb562628d7bfc76f05ca132ee35f44e191d Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Wed, 1 Nov 2023 12:56:57 +0000 Subject: [PATCH 1/2] chore: updating remotes and ABIs --- abis/0.8.21/ServiceStakingMechUsage.json | 65 ++++++++++++++++++- abis/0.8.21/ServiceStakingTokenMechUsage.json | 65 ++++++++++++++++++- lib/autonolas-registries | 2 +- lib/forge-std | 2 +- 4 files changed, 126 insertions(+), 8 deletions(-) diff --git a/abis/0.8.21/ServiceStakingMechUsage.json b/abis/0.8.21/ServiceStakingMechUsage.json index b82e31f..939fccf 100644 --- a/abis/0.8.21/ServiceStakingMechUsage.json +++ b/abis/0.8.21/ServiceStakingMechUsage.json @@ -754,6 +754,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "getAgentIds", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "getNextRewardCheckpointTimestamp", @@ -773,13 +786,59 @@ "outputs": [ { "internalType": "uint256[]", - "name": "serviceIds", + "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "serviceId", + "type": "uint256" + } + ], + "name": "getServiceInfo", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "multisig", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "nonces", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "tsStart", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "internalType": "struct ServiceInfo", + "name": "sInfo", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -1047,8 +1106,8 @@ "type": "receive" } ], - "bytecode": "0x6101e06040523480156200001257600080fd5b50604051620028b8380380620028b88339810160408190526200003591620003a7565b808484848282828260000151600014806200005257506020830151155b806200006057506060830151155b806200006e57506080830151155b806200007c575060a0830151155b156200009b57604051637c946ed760e01b815260040160405180910390fd5b600283604001511015620000d757604080840151905163491a2bb160e01b81526004810191909152600260248201526044015b60405180910390fd5b6001600160a01b038216620000ff5760405163d92e233d60e01b815260040160405180910390fd5b82516080908152602084015160a0908152604085015160c052606085015160e09081529185015161010090815290850151610120526001600160a01b038416610180529084015161014052830151610160526000805b8460c00151518110156200023757818560c0015182815181106200017d576200017d6200049e565b602002602001015111620001c9578460c001518181518110620001a457620001a46200049e565b6020026020010151604051632ab10b0b60e21b8152600401620000ce91815260200190565b8460c001518181518110620001e257620001e26200049e565b6020908102919091010151600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0181905591506200022f81620004b4565b905062000155565b50816200025757604051637c946ed760e01b815260040160405180910390fd5b506101a0525050426002555050506001600160a01b0381166200028c5760405162ca95f960e81b815260040160405180910390fd5b6001600160a01b03166101c05250620004dc92505050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715620002e057620002e0620002a4565b60405290565b600082601f830112620002f857600080fd5b815160206001600160401b0380831115620003175762000317620002a4565b8260051b604051601f19603f830116810181811084821117156200033f576200033f620002a4565b6040529384528581018301938381019250878511156200035e57600080fd5b83870191505b848210156200037f5781518352918301919083019062000364565b979650505050505050565b80516001600160a01b0381168114620003a257600080fd5b919050565b60008060008060808587031215620003be57600080fd5b84516001600160401b0380821115620003d657600080fd5b908601906101208289031215620003ec57600080fd5b620003f6620002ba565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c0830151828111156200043f57600080fd5b6200044d8a828601620002e6565b60c08301525060e0838101519082015261010092830151928101929092525093506200047c602086016200038a565b92506040850151915062000493606086016200038a565b905092959194509250565b634e487b7160e01b600052603260045260246000fd5b600060018201620004d557634e487b7160e01b600052601160045260246000fd5b5060010190565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516122d7620005e1600039600081816104010152611ad701526000818161046d0152610ead0152600081816105900152818161093e01528181610c6901526110b201526000818161060601528181610d310152610d6001526000818161031101528181610da70152610ddb0152600081816103990152610cef0152600081816103cd0152611c9e01526000818161034501528181611528015261161c01526000818161063a0152818161198601526119c201526000818161066e01526118cd01526000818161029701528181610bf00152610c2401526122d76000f3fe6080604052600436106101a55760003560e01c8063a694fc3a116100e1578063e1f1176d1161008a578063eb338c9611610064578063eb338c9614610690578063f189e85a146106b0578063f4dce714146106d2578063ffa1ad74146106e757600080fd5b8063e1f1176d146105f4578063e77cdcc914610628578063eacdaabc1461065c57600080fd5b8063c2c4c5c1116100bb578063c2c4c5c114610557578063cbcf252a1461057e578063cd25fe38146105b257600080fd5b8063a694fc3a146104a5578063a74466ad146104c5578063b69ef8a81461054157600080fd5b806356e760581161014e57806375af4b6d1161012857806375af4b6d146103ef57806378e061361461043b578063809cee2f1461045b578063879d90901461048f57600080fd5b806356e76058146103675780635829c5ec14610387578063592cf3fb146103bb57600080fd5b80633e7329971161017f5780633e732997146102e957806342cde4e8146102ff57806352c824f51461033357600080fd5b8063150b7a021461022357806316a75172146102855780632e17de78146102c757600080fd5b3661021e576000346000546101ba9190611d64565b90506000346001546101cc9190611d64565b60008390556001819055604080513481526020810185905290810182905290915033907f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e9060600160405180910390a2005b600080fd5b34801561022f57600080fd5b5061024f61023e366004611d8c565b630a85bd0160e11b95945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b34801561029157600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161027c565b3480156102d357600080fd5b506102e76102e2366004611e2b565b610725565b005b3480156102f557600080fd5b506102b960025481565b34801561030b57600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b34801561033f57600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b34801561037357600080fd5b506102b9610382366004611e2b565b610a08565b34801561039357600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c757600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b3480156103fb57600080fd5b506104237f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161027c565b34801561044757600080fd5b506102b9610456366004611e2b565b610a29565b34801561046757600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b34801561049b57600080fd5b506102b960015481565b3480156104b157600080fd5b506102e76104c0366004611e2b565b610bc8565b3480156104d157600080fd5b506105166104e0366004611e2b565b600460208190526000918252604090912080546001820154600383015492909301546001600160a01b0391821693909116919084565b604080516001600160a01b03958616815294909316602085015291830152606082015260800161027c565b34801561054d57600080fd5b506102b960005481565b34801561056357600080fd5b5061056c61116f565b60405161027c96959493929190611e7f565b34801561058a57600080fd5b506104237f000000000000000000000000000000000000000000000000000000000000000081565b3480156105be57600080fd5b506105e46105cd366004611e2b565b600090815260046020526040902060030154151590565b604051901515815260200161027c565b34801561060057600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b34801561063457600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b34801561066857600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b34801561069c57600080fd5b506102b96106ab366004611e2b565b61146e565b3480156106bc57600080fd5b506106c561147e565b60405161027c9190611f57565b3480156106de57600080fd5b506102b9611524565b3480156106f357600080fd5b50610718604051806040016040528060058152602001640302e312e360dc1b81525081565b60405161027c9190611f6a565b600081815260046020526040902060018101546001600160a01b0316331461077c57600181015460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044015b60405180910390fd5b60008061078761116f565b95505050505091508061079f5761079c61147e565b91505b60005b82518110156107dc57848382815181106107be576107be611fb8565b602002602001015103156107dc576107d581611fce565b90506107a2565b6004840154600285018054604080516020808402820181019092528281526000939092909183018282801561083057602002820191906000526020600020905b81548152602001906001019080831161081c575b5050506003890154895460008c8152600460205260408120805473ffffffffffffffffffffffffffffffffffffffff199081168255600182018054909116905595965091946001600160a01b03909116935091506108916002830182611ccd565b50600060038201819055600490910155600580546108b190600190611fe7565b815481106108c1576108c1611fb8565b9060005260206000200154600586815481106108df576108df611fb8565b60009182526020909120015560058054806108fc576108fc611ffa565b600082815260208120820160001990810191909155019055604051632142170760e11b8152306004820152336024820152604481018a90526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b15801561098257600080fd5b505af1158015610996573d6000803e3d6000fd5b5050505060008411156109ad576109ad8185611559565b806001600160a01b0316336001600160a01b03168a7f246ee6115bfd84e00097b16569c2ff2f822026bb9595a82cd2c1e69d4b6ea50c8688876040516109f593929190612010565b60405180910390a4505050505050505050565b60038181548110610a1857600080fd5b600091825260209091200154905081565b6000818152600460209081526040808320815160a08101835281546001600160a01b0390811682526001830154168185015260028201805484518187028101870186528181528796939586019390929190830182828015610aa957602002820191906000526020600020905b815481526020019060010190808311610a95575b50505050508152602001600382015481526020016004820154815250509050806080015191508060600151600003610af75760405163e0606b6360e01b815260048101849052602401610773565b6000806000806000610b07611605565b50509450945094509450945060005b84811015610bbc5788838281518110610b3157610b31611fb8565b602002602001015103610bac5785841115610b87578386838381518110610b5a57610b5a611fb8565b6020026020010151610b6c9190612035565b610b76919061204c565b610b809089611d64565b9750610bbc565b818181518110610b9957610b99611fb8565b602002602001015188610b809190611d64565b610bb581611fce565b9050610b16565b50505050505050919050565b600154600003610beb5760405163afb0be3360e01b815260040160405180910390fd5b6005547f00000000000000000000000000000000000000000000000000000000000000008103610c505760405163fd20861560e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820152602401610773565b60405163ef0e239b60e01b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ef0e239b90602401600060405180830381865afa158015610cb8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ce09190810190612194565b9050806080015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014610d2f57604051637ad404bf60e11b815260048101849052602401610773565b7f000000000000000000000000000000000000000000000000000000000000000015801590610d82575080604001517f000000000000000000000000000000000000000000000000000000000000000014155b15610da357604051637ad404bf60e11b815260048101849052602401610773565b60007f0000000000000000000000000000000000000000000000000000000000000000118015610dfd5750806060015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014155b15610e1e57604051637ad404bf60e11b815260048101849052602401610773565b60048160c001516005811115610e3657610e36612272565b14610e75578060c001516005811115610e5157610e51612272565b604051633c053f9d60e21b8152600481019190915260248101849052604401610773565b600081602001516001600160a01b0316803b806020016040519081016040528181526000908060200190933c805190602001209050807f000000000000000000000000000000000000000000000000000000000000000014610efa57602082015160405162a2307960e51b81526001600160a01b039091166004820152602401610773565b6003548015610fcb5760e083015151818114610f2c57604051637ad404bf60e11b815260048101879052602401610773565b60005b81811015610fc8578460e001518181518110610f4d57610f4d611fb8565b602002602001015163ffffffff1660038281548110610f6e57610f6e611fb8565b906000526020600020015414610fb85760038181548110610f9157610f91611fb8565b9060005260206000200154604051632ab10b0b60e21b815260040161077391815260200190565b610fc181611fce565b9050610f2f565b50505b610fe78584600001516bffffffffffffffffffffffff16611984565b600085815260046020908152604082209085015181546001600160a01b03821673ffffffffffffffffffffffffffffffffffffffff199182161783556001830180549091163317905590919061103c906119f2565b80519091506110549060028401906020840190611cee565b50426003830155600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001879055604051632142170760e11b8152336004820152306024820152604481018890527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342842e0e90606401600060405180830381600087803b1580156110fe57600080fd5b505af1158015611112573d6000803e3d6000fd5b5050505084602001516001600160a01b0316336001600160a01b0316887f5d43ac9b1b213902df90d405b0006308578486b6c62182c5df202ed572c844e48460405161115e9190611f57565b60405180910390a450505050505050565b606080600060608060008060008060008060008061118b611605565b9650965096509650965096509650600086111561138f576000878611156112fe5760008060015b8981101561125057888b8883815181106111ce576111ce611fb8565b60200260200101516111e09190612035565b6111ea919061204c565b92506111f68383611d64565b915087818151811061120a5761120a611fb8565b602002602001015193508260046000868152602001908152602001600020600401600082825461123a9190611d64565b90915550611249905081611fce565b90506111b2565b50878a8760008151811061126657611266611fb8565b60200260200101516112789190612035565b611282919061204c565b915061128e8282611d64565b9050866000815181106112a3576112a3611fb8565b60200260200101519250808a11156112cc576112bf818b611fe7565b6112c99083611d64565b91505b600083815260046020819052604082200180548492906112ed908490611d64565b9091555060009a5061138892505050565b60005b8781101561137a5785818151811061131b5761131b611fb8565b6020026020010151915084818151811061133757611337611fb8565b60200260200101516004600084815260200190815260200160002060040160008282546113649190611d64565b90915550611373905081611fce565b9050611301565b506113858689611fe7565b97505b5060018790555b8051156114595760005b82518110156114165760008382815181106113b6576113b6611fb8565b602002602001015190508282815181106113d2576113d2611fb8565b6020026020010151600460008381526020019081526020016000206002019080519060200190611403929190611cee565b50508061140f90611fce565b9050611399565b50426002556040805188815260208101889052600199507f21d81d5d656869e8ce3ba8d65526a2f0dbbcd3d36f5f9999eb7c84360e45eced910160405180910390a15b909c909b509399509097509550929350915050565b60058181548110610a1857600080fd5b6005546060908067ffffffffffffffff81111561149d5761149d61206e565b6040519080825280602002602001820160405280156114c6578160200160208202803683370190505b50915060005b8181101561151f57600581815481106114e7576114e7611fb8565b906000526020600020015483828151811061150457611504611fb8565b602090810291909101015261151881611fce565b90506114cc565b505090565b60007f00000000000000000000000000000000000000000000000000000000000000006002546115549190611d64565b905090565b8060008082825461156a9190611fe7565b90915550506040516000906001600160a01b0384169083908381818185875af1925050503d80600081146115ba576040519150601f19603f3d011682016040523d82523d6000602084013e6115bf565b606091505b50509050806116005760405163cd3f165960e01b8152600060048201523060248201526001600160a01b038416604482015260648101839052608401610773565b505050565b6002546001549060009081906060908190819081907f00000000000000000000000000000000000000000000000000000000000000006116458242611fe7565b101580156116535750600088115b1561197a576005548067ffffffffffffffff8111156116745761167461206e565b60405190808252806020026020018201604052801561169d578160200160208202803683370190505b5093508067ffffffffffffffff8111156116b9576116b961206e565b6040519080825280602002602001820160405280156116e2578160200160208202803683370190505b5095508067ffffffffffffffff8111156116fe576116fe61206e565b604051908082528060200260200182016040528015611727578160200160208202803683370190505b5094508067ffffffffffffffff8111156117435761174361206e565b60405190808252806020026020018201604052801561177657816020015b60608152602001906001900390816117615790505b50925060005b81811015611977576005818154811061179757611797611fb8565b90600052602060002001548582815181106117b4576117b4611fb8565b6020026020010181815250506000600460008784815181106117d8576117d8611fb8565b60209081029190910181015182528101919091526040016000208054909150611809906001600160a01b03166119f2565b85838151811061181b5761181b611fb8565b60209081029190910101526003810154849081811115611839578091505b6118438242611fe7565b905060006118bd88868151811061185c5761185c611fb8565b6020026020010151856002018054806020026020016040519081016040528092919081815260200182805480156118b257602002820191906000526020600020905b81548152602001906001019080831161189e575b505050505084611a03565b905080156119625760006118f1837f0000000000000000000000000000000000000000000000000000000000000000612035565b90506118fd818e611d64565b9c50808b8f8151811061191257611912611fb8565b60200260200101818152505089868151811061193057611930611fb8565b60200260200101518c8f8151811061194a5761194a611fb8565b602090810291909101015261195e8e611fce565b9d50505b505050508061197090611fce565b905061177c565b50505b5090919293949596565b7f00000000000000000000000000000000000000000000000000000000000000008110156119ee5760405163491a2bb160e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610773565b5050565b60606119fd82611a18565b92915050565b6000611a10848484611b66565b949350505050565b6040805160028082526060808301845292602083019080368337019050509050816001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9a9190612288565b81600081518110611aad57611aad611fb8565b6020908102919091010152604051637af7347360e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690637af7347390602401602060405180830381865afa158015611b1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b429190612288565b81600181518110611b5557611b55611fb8565b602002602001018181525050919050565b60008082118015611baa575082600081518110611b8557611b85611fb8565b602002602001015184600081518110611ba057611ba0611fb8565b6020026020010151115b8015611be9575082600181518110611bc457611bc4611fb8565b602002602001015184600181518110611bdf57611bdf611fb8565b6020026020010151115b15611cc657600083600081518110611c0357611c03611fb8565b602002602001015185600081518110611c1e57611c1e611fb8565b6020026020010151611c309190611fe7565b9050600084600181518110611c4757611c47611fb8565b602002602001015186600181518110611c6257611c62611fb8565b6020026020010151611c749190611fe7565b9050818111611cc357600084611c9283670de0b6b3a7640000612035565b611c9c919061204c565b7f000000000000000000000000000000000000000000000000000000000000000011159350505b50505b9392505050565b5080546000825590600052602060002090810190611ceb9190611d39565b50565b828054828255906000526020600020908101928215611d29579160200282015b82811115611d29578251825591602001919060010190611d0e565b50611d35929150611d39565b5090565b5b80821115611d355760008155600101611d3a565b634e487b7160e01b600052601160045260246000fd5b808201808211156119fd576119fd611d4e565b6001600160a01b0381168114611ceb57600080fd5b600080600080600060808688031215611da457600080fd5b8535611daf81611d77565b94506020860135611dbf81611d77565b935060408601359250606086013567ffffffffffffffff80821115611de357600080fd5b818801915088601f830112611df757600080fd5b813581811115611e0657600080fd5b896020828501011115611e1857600080fd5b9699959850939650602001949392505050565b600060208284031215611e3d57600080fd5b5035919050565b600081518084526020808501945080840160005b83811015611e7457815187529582019590820190600101611e58565b509495945050505050565b60c081526000611e9260c0830189611e44565b6020838203818501528189518084528284019150828160051b850101838c016000805b84811015611f0857878403601f19018652825180518086529088019088860190845b81811015611ef35783518352928a0192918a0191600101611ed7565b50509688019694505091860191600101611eb5565b5050508a60408801528681036060880152611f23818b611e44565b9450505050508281036080840152611f3b8186611e44565b915050611f4c60a083018415159052565b979650505050505050565b602081526000611cc66020830184611e44565b600060208083528351808285015260005b81811015611f9757858101830151858201604001528201611f7b565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052603260045260246000fd5b600060018201611fe057611fe0611d4e565b5060010190565b818103818111156119fd576119fd611d4e565b634e487b7160e01b600052603160045260246000fd5b6060815260006120236060830186611e44565b60208301949094525060400152919050565b80820281158282048414176119fd576119fd611d4e565b60008261206957634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff811182821017156120a8576120a861206e565b60405290565b80516bffffffffffffffffffffffff811681146120ca57600080fd5b919050565b80516120ca81611d77565b805163ffffffff811681146120ca57600080fd5b8051600681106120ca57600080fd5b600082601f83011261210e57600080fd5b8151602067ffffffffffffffff8083111561212b5761212b61206e565b8260051b604051601f19603f830116810181811084821117156121505761215061206e565b60405293845285810183019383810192508785111561216e57600080fd5b83870191505b84821015611f4c57612185826120da565b83529183019190830190612174565b6000602082840312156121a657600080fd5b815167ffffffffffffffff808211156121be57600080fd5b9083019061010082860312156121d357600080fd5b6121db612084565b6121e4836120ae565b81526121f2602084016120cf565b60208201526040830151604082015261220d606084016120da565b606082015261221e608084016120da565b608082015261222f60a084016120da565b60a082015261224060c084016120ee565b60c082015260e08301518281111561225757600080fd5b612263878286016120fd565b60e08301525095945050505050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561229a57600080fd5b505191905056fea26469706673582212202ac60e1e5d036f773b2fc79e34c0afb24927afbc73cb4069108e3bae4093752f64736f6c63430008150033", - "deployedBytecode": "0x6080604052600436106101a55760003560e01c8063a694fc3a116100e1578063e1f1176d1161008a578063eb338c9611610064578063eb338c9614610690578063f189e85a146106b0578063f4dce714146106d2578063ffa1ad74146106e757600080fd5b8063e1f1176d146105f4578063e77cdcc914610628578063eacdaabc1461065c57600080fd5b8063c2c4c5c1116100bb578063c2c4c5c114610557578063cbcf252a1461057e578063cd25fe38146105b257600080fd5b8063a694fc3a146104a5578063a74466ad146104c5578063b69ef8a81461054157600080fd5b806356e760581161014e57806375af4b6d1161012857806375af4b6d146103ef57806378e061361461043b578063809cee2f1461045b578063879d90901461048f57600080fd5b806356e76058146103675780635829c5ec14610387578063592cf3fb146103bb57600080fd5b80633e7329971161017f5780633e732997146102e957806342cde4e8146102ff57806352c824f51461033357600080fd5b8063150b7a021461022357806316a75172146102855780632e17de78146102c757600080fd5b3661021e576000346000546101ba9190611d64565b90506000346001546101cc9190611d64565b60008390556001819055604080513481526020810185905290810182905290915033907f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e9060600160405180910390a2005b600080fd5b34801561022f57600080fd5b5061024f61023e366004611d8c565b630a85bd0160e11b95945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b34801561029157600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161027c565b3480156102d357600080fd5b506102e76102e2366004611e2b565b610725565b005b3480156102f557600080fd5b506102b960025481565b34801561030b57600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b34801561033f57600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b34801561037357600080fd5b506102b9610382366004611e2b565b610a08565b34801561039357600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c757600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b3480156103fb57600080fd5b506104237f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161027c565b34801561044757600080fd5b506102b9610456366004611e2b565b610a29565b34801561046757600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b34801561049b57600080fd5b506102b960015481565b3480156104b157600080fd5b506102e76104c0366004611e2b565b610bc8565b3480156104d157600080fd5b506105166104e0366004611e2b565b600460208190526000918252604090912080546001820154600383015492909301546001600160a01b0391821693909116919084565b604080516001600160a01b03958616815294909316602085015291830152606082015260800161027c565b34801561054d57600080fd5b506102b960005481565b34801561056357600080fd5b5061056c61116f565b60405161027c96959493929190611e7f565b34801561058a57600080fd5b506104237f000000000000000000000000000000000000000000000000000000000000000081565b3480156105be57600080fd5b506105e46105cd366004611e2b565b600090815260046020526040902060030154151590565b604051901515815260200161027c565b34801561060057600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b34801561063457600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b34801561066857600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b34801561069c57600080fd5b506102b96106ab366004611e2b565b61146e565b3480156106bc57600080fd5b506106c561147e565b60405161027c9190611f57565b3480156106de57600080fd5b506102b9611524565b3480156106f357600080fd5b50610718604051806040016040528060058152602001640302e312e360dc1b81525081565b60405161027c9190611f6a565b600081815260046020526040902060018101546001600160a01b0316331461077c57600181015460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044015b60405180910390fd5b60008061078761116f565b95505050505091508061079f5761079c61147e565b91505b60005b82518110156107dc57848382815181106107be576107be611fb8565b602002602001015103156107dc576107d581611fce565b90506107a2565b6004840154600285018054604080516020808402820181019092528281526000939092909183018282801561083057602002820191906000526020600020905b81548152602001906001019080831161081c575b5050506003890154895460008c8152600460205260408120805473ffffffffffffffffffffffffffffffffffffffff199081168255600182018054909116905595965091946001600160a01b03909116935091506108916002830182611ccd565b50600060038201819055600490910155600580546108b190600190611fe7565b815481106108c1576108c1611fb8565b9060005260206000200154600586815481106108df576108df611fb8565b60009182526020909120015560058054806108fc576108fc611ffa565b600082815260208120820160001990810191909155019055604051632142170760e11b8152306004820152336024820152604481018a90526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b15801561098257600080fd5b505af1158015610996573d6000803e3d6000fd5b5050505060008411156109ad576109ad8185611559565b806001600160a01b0316336001600160a01b03168a7f246ee6115bfd84e00097b16569c2ff2f822026bb9595a82cd2c1e69d4b6ea50c8688876040516109f593929190612010565b60405180910390a4505050505050505050565b60038181548110610a1857600080fd5b600091825260209091200154905081565b6000818152600460209081526040808320815160a08101835281546001600160a01b0390811682526001830154168185015260028201805484518187028101870186528181528796939586019390929190830182828015610aa957602002820191906000526020600020905b815481526020019060010190808311610a95575b50505050508152602001600382015481526020016004820154815250509050806080015191508060600151600003610af75760405163e0606b6360e01b815260048101849052602401610773565b6000806000806000610b07611605565b50509450945094509450945060005b84811015610bbc5788838281518110610b3157610b31611fb8565b602002602001015103610bac5785841115610b87578386838381518110610b5a57610b5a611fb8565b6020026020010151610b6c9190612035565b610b76919061204c565b610b809089611d64565b9750610bbc565b818181518110610b9957610b99611fb8565b602002602001015188610b809190611d64565b610bb581611fce565b9050610b16565b50505050505050919050565b600154600003610beb5760405163afb0be3360e01b815260040160405180910390fd5b6005547f00000000000000000000000000000000000000000000000000000000000000008103610c505760405163fd20861560e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820152602401610773565b60405163ef0e239b60e01b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ef0e239b90602401600060405180830381865afa158015610cb8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ce09190810190612194565b9050806080015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014610d2f57604051637ad404bf60e11b815260048101849052602401610773565b7f000000000000000000000000000000000000000000000000000000000000000015801590610d82575080604001517f000000000000000000000000000000000000000000000000000000000000000014155b15610da357604051637ad404bf60e11b815260048101849052602401610773565b60007f0000000000000000000000000000000000000000000000000000000000000000118015610dfd5750806060015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014155b15610e1e57604051637ad404bf60e11b815260048101849052602401610773565b60048160c001516005811115610e3657610e36612272565b14610e75578060c001516005811115610e5157610e51612272565b604051633c053f9d60e21b8152600481019190915260248101849052604401610773565b600081602001516001600160a01b0316803b806020016040519081016040528181526000908060200190933c805190602001209050807f000000000000000000000000000000000000000000000000000000000000000014610efa57602082015160405162a2307960e51b81526001600160a01b039091166004820152602401610773565b6003548015610fcb5760e083015151818114610f2c57604051637ad404bf60e11b815260048101879052602401610773565b60005b81811015610fc8578460e001518181518110610f4d57610f4d611fb8565b602002602001015163ffffffff1660038281548110610f6e57610f6e611fb8565b906000526020600020015414610fb85760038181548110610f9157610f91611fb8565b9060005260206000200154604051632ab10b0b60e21b815260040161077391815260200190565b610fc181611fce565b9050610f2f565b50505b610fe78584600001516bffffffffffffffffffffffff16611984565b600085815260046020908152604082209085015181546001600160a01b03821673ffffffffffffffffffffffffffffffffffffffff199182161783556001830180549091163317905590919061103c906119f2565b80519091506110549060028401906020840190611cee565b50426003830155600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001879055604051632142170760e11b8152336004820152306024820152604481018890527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342842e0e90606401600060405180830381600087803b1580156110fe57600080fd5b505af1158015611112573d6000803e3d6000fd5b5050505084602001516001600160a01b0316336001600160a01b0316887f5d43ac9b1b213902df90d405b0006308578486b6c62182c5df202ed572c844e48460405161115e9190611f57565b60405180910390a450505050505050565b606080600060608060008060008060008060008061118b611605565b9650965096509650965096509650600086111561138f576000878611156112fe5760008060015b8981101561125057888b8883815181106111ce576111ce611fb8565b60200260200101516111e09190612035565b6111ea919061204c565b92506111f68383611d64565b915087818151811061120a5761120a611fb8565b602002602001015193508260046000868152602001908152602001600020600401600082825461123a9190611d64565b90915550611249905081611fce565b90506111b2565b50878a8760008151811061126657611266611fb8565b60200260200101516112789190612035565b611282919061204c565b915061128e8282611d64565b9050866000815181106112a3576112a3611fb8565b60200260200101519250808a11156112cc576112bf818b611fe7565b6112c99083611d64565b91505b600083815260046020819052604082200180548492906112ed908490611d64565b9091555060009a5061138892505050565b60005b8781101561137a5785818151811061131b5761131b611fb8565b6020026020010151915084818151811061133757611337611fb8565b60200260200101516004600084815260200190815260200160002060040160008282546113649190611d64565b90915550611373905081611fce565b9050611301565b506113858689611fe7565b97505b5060018790555b8051156114595760005b82518110156114165760008382815181106113b6576113b6611fb8565b602002602001015190508282815181106113d2576113d2611fb8565b6020026020010151600460008381526020019081526020016000206002019080519060200190611403929190611cee565b50508061140f90611fce565b9050611399565b50426002556040805188815260208101889052600199507f21d81d5d656869e8ce3ba8d65526a2f0dbbcd3d36f5f9999eb7c84360e45eced910160405180910390a15b909c909b509399509097509550929350915050565b60058181548110610a1857600080fd5b6005546060908067ffffffffffffffff81111561149d5761149d61206e565b6040519080825280602002602001820160405280156114c6578160200160208202803683370190505b50915060005b8181101561151f57600581815481106114e7576114e7611fb8565b906000526020600020015483828151811061150457611504611fb8565b602090810291909101015261151881611fce565b90506114cc565b505090565b60007f00000000000000000000000000000000000000000000000000000000000000006002546115549190611d64565b905090565b8060008082825461156a9190611fe7565b90915550506040516000906001600160a01b0384169083908381818185875af1925050503d80600081146115ba576040519150601f19603f3d011682016040523d82523d6000602084013e6115bf565b606091505b50509050806116005760405163cd3f165960e01b8152600060048201523060248201526001600160a01b038416604482015260648101839052608401610773565b505050565b6002546001549060009081906060908190819081907f00000000000000000000000000000000000000000000000000000000000000006116458242611fe7565b101580156116535750600088115b1561197a576005548067ffffffffffffffff8111156116745761167461206e565b60405190808252806020026020018201604052801561169d578160200160208202803683370190505b5093508067ffffffffffffffff8111156116b9576116b961206e565b6040519080825280602002602001820160405280156116e2578160200160208202803683370190505b5095508067ffffffffffffffff8111156116fe576116fe61206e565b604051908082528060200260200182016040528015611727578160200160208202803683370190505b5094508067ffffffffffffffff8111156117435761174361206e565b60405190808252806020026020018201604052801561177657816020015b60608152602001906001900390816117615790505b50925060005b81811015611977576005818154811061179757611797611fb8565b90600052602060002001548582815181106117b4576117b4611fb8565b6020026020010181815250506000600460008784815181106117d8576117d8611fb8565b60209081029190910181015182528101919091526040016000208054909150611809906001600160a01b03166119f2565b85838151811061181b5761181b611fb8565b60209081029190910101526003810154849081811115611839578091505b6118438242611fe7565b905060006118bd88868151811061185c5761185c611fb8565b6020026020010151856002018054806020026020016040519081016040528092919081815260200182805480156118b257602002820191906000526020600020905b81548152602001906001019080831161189e575b505050505084611a03565b905080156119625760006118f1837f0000000000000000000000000000000000000000000000000000000000000000612035565b90506118fd818e611d64565b9c50808b8f8151811061191257611912611fb8565b60200260200101818152505089868151811061193057611930611fb8565b60200260200101518c8f8151811061194a5761194a611fb8565b602090810291909101015261195e8e611fce565b9d50505b505050508061197090611fce565b905061177c565b50505b5090919293949596565b7f00000000000000000000000000000000000000000000000000000000000000008110156119ee5760405163491a2bb160e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610773565b5050565b60606119fd82611a18565b92915050565b6000611a10848484611b66565b949350505050565b6040805160028082526060808301845292602083019080368337019050509050816001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9a9190612288565b81600081518110611aad57611aad611fb8565b6020908102919091010152604051637af7347360e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690637af7347390602401602060405180830381865afa158015611b1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b429190612288565b81600181518110611b5557611b55611fb8565b602002602001018181525050919050565b60008082118015611baa575082600081518110611b8557611b85611fb8565b602002602001015184600081518110611ba057611ba0611fb8565b6020026020010151115b8015611be9575082600181518110611bc457611bc4611fb8565b602002602001015184600181518110611bdf57611bdf611fb8565b6020026020010151115b15611cc657600083600081518110611c0357611c03611fb8565b602002602001015185600081518110611c1e57611c1e611fb8565b6020026020010151611c309190611fe7565b9050600084600181518110611c4757611c47611fb8565b602002602001015186600181518110611c6257611c62611fb8565b6020026020010151611c749190611fe7565b9050818111611cc357600084611c9283670de0b6b3a7640000612035565b611c9c919061204c565b7f000000000000000000000000000000000000000000000000000000000000000011159350505b50505b9392505050565b5080546000825590600052602060002090810190611ceb9190611d39565b50565b828054828255906000526020600020908101928215611d29579160200282015b82811115611d29578251825591602001919060010190611d0e565b50611d35929150611d39565b5090565b5b80821115611d355760008155600101611d3a565b634e487b7160e01b600052601160045260246000fd5b808201808211156119fd576119fd611d4e565b6001600160a01b0381168114611ceb57600080fd5b600080600080600060808688031215611da457600080fd5b8535611daf81611d77565b94506020860135611dbf81611d77565b935060408601359250606086013567ffffffffffffffff80821115611de357600080fd5b818801915088601f830112611df757600080fd5b813581811115611e0657600080fd5b896020828501011115611e1857600080fd5b9699959850939650602001949392505050565b600060208284031215611e3d57600080fd5b5035919050565b600081518084526020808501945080840160005b83811015611e7457815187529582019590820190600101611e58565b509495945050505050565b60c081526000611e9260c0830189611e44565b6020838203818501528189518084528284019150828160051b850101838c016000805b84811015611f0857878403601f19018652825180518086529088019088860190845b81811015611ef35783518352928a0192918a0191600101611ed7565b50509688019694505091860191600101611eb5565b5050508a60408801528681036060880152611f23818b611e44565b9450505050508281036080840152611f3b8186611e44565b915050611f4c60a083018415159052565b979650505050505050565b602081526000611cc66020830184611e44565b600060208083528351808285015260005b81811015611f9757858101830151858201604001528201611f7b565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052603260045260246000fd5b600060018201611fe057611fe0611d4e565b5060010190565b818103818111156119fd576119fd611d4e565b634e487b7160e01b600052603160045260246000fd5b6060815260006120236060830186611e44565b60208301949094525060400152919050565b80820281158282048414176119fd576119fd611d4e565b60008261206957634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff811182821017156120a8576120a861206e565b60405290565b80516bffffffffffffffffffffffff811681146120ca57600080fd5b919050565b80516120ca81611d77565b805163ffffffff811681146120ca57600080fd5b8051600681106120ca57600080fd5b600082601f83011261210e57600080fd5b8151602067ffffffffffffffff8083111561212b5761212b61206e565b8260051b604051601f19603f830116810181811084821117156121505761215061206e565b60405293845285810183019383810192508785111561216e57600080fd5b83870191505b84821015611f4c57612185826120da565b83529183019190830190612174565b6000602082840312156121a657600080fd5b815167ffffffffffffffff808211156121be57600080fd5b9083019061010082860312156121d357600080fd5b6121db612084565b6121e4836120ae565b81526121f2602084016120cf565b60208201526040830151604082015261220d606084016120da565b606082015261221e608084016120da565b608082015261222f60a084016120da565b60a082015261224060c084016120ee565b60c082015260e08301518281111561225757600080fd5b612263878286016120fd565b60e08301525095945050505050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561229a57600080fd5b505191905056fea26469706673582212202ac60e1e5d036f773b2fc79e34c0afb24927afbc73cb4069108e3bae4093752f64736f6c63430008150033", + "bytecode": "0x6101e06040523480156200001257600080fd5b5060405162002a3438038062002a348339810160408190526200003591620003a7565b808484848282828260000151600014806200005257506020830151155b806200006057506060830151155b806200006e57506080830151155b806200007c575060a0830151155b156200009b57604051637c946ed760e01b815260040160405180910390fd5b600283604001511015620000d757604080840151905163491a2bb160e01b81526004810191909152600260248201526044015b60405180910390fd5b6001600160a01b038216620000ff5760405163d92e233d60e01b815260040160405180910390fd5b82516080908152602084015160a0908152604085015160c052606085015160e09081529185015161010090815290850151610120526001600160a01b038416610180529084015161014052830151610160526000805b8460c00151518110156200023757818560c0015182815181106200017d576200017d6200049e565b602002602001015111620001c9578460c001518181518110620001a457620001a46200049e565b6020026020010151604051632ab10b0b60e21b8152600401620000ce91815260200190565b8460c001518181518110620001e257620001e26200049e565b6020908102919091010151600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0181905591506200022f81620004b4565b905062000155565b50816200025757604051637c946ed760e01b815260040160405180910390fd5b506101a0525050426002555050506001600160a01b0381166200028c5760405162ca95f960e81b815260040160405180910390fd5b6001600160a01b03166101c05250620004dc92505050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715620002e057620002e0620002a4565b60405290565b600082601f830112620002f857600080fd5b815160206001600160401b0380831115620003175762000317620002a4565b8260051b604051601f19603f830116810181811084821117156200033f576200033f620002a4565b6040529384528581018301938381019250878511156200035e57600080fd5b83870191505b848210156200037f5781518352918301919083019062000364565b979650505050505050565b80516001600160a01b0381168114620003a257600080fd5b919050565b60008060008060808587031215620003be57600080fd5b84516001600160401b0380821115620003d657600080fd5b908601906101208289031215620003ec57600080fd5b620003f6620002ba565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c0830151828111156200043f57600080fd5b6200044d8a828601620002e6565b60c08301525060e0838101519082015261010092830151928101929092525093506200047c602086016200038a565b92506040850151915062000493606086016200038a565b905092959194509250565b634e487b7160e01b600052603260045260246000fd5b600060018201620004d557634e487b7160e01b600052601160045260246000fd5b5060010190565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051612453620005e1600039600081816104170152611c1d0152600081816104830152610feb0152600081816105f50152818161099601528181610da701526111f001526000818161066b01528181610e6f0152610e9e01526000818161032701528181610ee50152610f190152600081816103af0152610e2d0152600081816103e30152611de401526000818161035b0152818161166e015261176201526000818161069f01528181611acc0152611b080152600081816106d30152611a130152600081816102ad01528181610d2e0152610d6201526124536000f3fe6080604052600436106101bb5760003560e01c8063a694fc3a116100ec578063e1f1176d1161008a578063eb338c9611610064578063eb338c96146106f5578063f189e85a14610715578063f4dce7141461072a578063ffa1ad741461073f57600080fd5b8063e1f1176d14610659578063e77cdcc91461068d578063eacdaabc146106c157600080fd5b8063b69ef8a8116100c6578063b69ef8a8146105a6578063c2c4c5c1146105bc578063cbcf252a146105e3578063cd25fe381461061757600080fd5b8063a694fc3a146104e8578063a74466ad14610508578063b15087601461058457600080fd5b80635829c5ec1161015957806378e061361161013357806378e0613614610451578063809cee2f1461047157806382a8ea58146104a5578063879d9090146104d257600080fd5b80635829c5ec1461039d578063592cf3fb146103d157806375af4b6d1461040557600080fd5b80633e732997116101955780633e732997146102ff57806342cde4e81461031557806352c824f51461034957806356e760581461037d57600080fd5b8063150b7a021461023957806316a751721461029b5780632e17de78146102dd57600080fd5b36610234576000346000546101d09190611eaa565b90506000346001546101e29190611eaa565b60008390556001819055604080513481526020810185905290810182905290915033907f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e9060600160405180910390a2005b600080fd5b34801561024557600080fd5b50610265610254366004611ed2565b630a85bd0160e11b95945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b3480156102a757600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610292565b3480156102e957600080fd5b506102fd6102f8366004611f71565b61077d565b005b34801561030b57600080fd5b506102cf60025481565b34801561032157600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035557600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561038957600080fd5b506102cf610398366004611f71565b610a60565b3480156103a957600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103dd57600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561041157600080fd5b506104397f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610292565b34801561045d57600080fd5b506102cf61046c366004611f71565b610a81565b34801561047d57600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b157600080fd5b506104c56104c0366004611f71565b610c20565b6040516102929190611fc5565b3480156104de57600080fd5b506102cf60015481565b3480156104f457600080fd5b506102fd610503366004611f71565b610d06565b34801561051457600080fd5b50610559610523366004611f71565b600460208190526000918252604090912080546001820154600383015492909301546001600160a01b0391821693909116919084565b604080516001600160a01b039586168152949093166020850152918301526060820152608001610292565b34801561059057600080fd5b506105996112ad565b6040516102929190612022565b3480156105b257600080fd5b506102cf60005481565b3480156105c857600080fd5b506105d1611305565b60405161029296959493929190612035565b3480156105ef57600080fd5b506104397f000000000000000000000000000000000000000000000000000000000000000081565b34801561062357600080fd5b50610649610632366004611f71565b600090815260046020526040902060030154151590565b6040519015158152602001610292565b34801561066557600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561069957600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106cd57600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561070157600080fd5b506102cf610710366004611f71565b611604565b34801561072157600080fd5b50610599611614565b34801561073657600080fd5b506102cf61166a565b34801561074b57600080fd5b50610770604051806040016040528060058152602001640302e312e360dc1b81525081565b60405161029291906120e6565b600081815260046020526040902060018101546001600160a01b031633146107d457600181015460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044015b60405180910390fd5b6000806107df611305565b9550505050509150806107f7576107f4611614565b91505b60005b8251811015610834578483828151811061081657610816612134565b602002602001015103156108345761082d8161214a565b90506107fa565b6004840154600285018054604080516020808402820181019092528281526000939092909183018282801561088857602002820191906000526020600020905b815481526020019060010190808311610874575b5050506003890154895460008c8152600460205260408120805473ffffffffffffffffffffffffffffffffffffffff199081168255600182018054909116905595965091946001600160a01b03909116935091506108e96002830182611e13565b506000600382018190556004909101556005805461090990600190612163565b8154811061091957610919612134565b90600052602060002001546005868154811061093757610937612134565b600091825260209091200155600580548061095457610954612176565b600082815260208120820160001990810191909155019055604051632142170760e11b8152306004820152336024820152604481018a90526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b1580156109da57600080fd5b505af11580156109ee573d6000803e3d6000fd5b505050506000841115610a0557610a05818561169f565b806001600160a01b0316336001600160a01b03168a7f246ee6115bfd84e00097b16569c2ff2f822026bb9595a82cd2c1e69d4b6ea50c868887604051610a4d9392919061218c565b60405180910390a4505050505050505050565b60038181548110610a7057600080fd5b600091825260209091200154905081565b6000818152600460209081526040808320815160a08101835281546001600160a01b0390811682526001830154168185015260028201805484518187028101870186528181528796939586019390929190830182828015610b0157602002820191906000526020600020905b815481526020019060010190808311610aed575b50505050508152602001600382015481526020016004820154815250509050806080015191508060600151600003610b4f5760405163e0606b6360e01b8152600481018490526024016107cb565b6000806000806000610b5f61174b565b50509450945094509450945060005b84811015610c145788838281518110610b8957610b89612134565b602002602001015103610c045785841115610bdf578386838381518110610bb257610bb2612134565b6020026020010151610bc491906121b1565b610bce91906121c8565b610bd89089611eaa565b9750610c14565b818181518110610bf157610bf1612134565b602002602001015188610bd89190611eaa565b610c0d8161214a565b9050610b6e565b50505050505050919050565b610c646040518060a0016040528060006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081525090565b600082815260046020908152604091829020825160a08101845281546001600160a01b0390811682526001830154168184015260028201805485518186028101860187528181529295939493860193830182828015610ce257602002820191906000526020600020905b815481526020019060010190808311610cce575b50505050508152602001600382015481526020016004820154815250509050919050565b600154600003610d295760405163afb0be3360e01b815260040160405180910390fd5b6005547f00000000000000000000000000000000000000000000000000000000000000008103610d8e5760405163fd20861560e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201526024016107cb565b60405163ef0e239b60e01b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ef0e239b90602401600060405180830381865afa158015610df6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e1e9190810190612310565b9050806080015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014610e6d57604051637ad404bf60e11b8152600481018490526024016107cb565b7f000000000000000000000000000000000000000000000000000000000000000015801590610ec0575080604001517f000000000000000000000000000000000000000000000000000000000000000014155b15610ee157604051637ad404bf60e11b8152600481018490526024016107cb565b60007f0000000000000000000000000000000000000000000000000000000000000000118015610f3b5750806060015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014155b15610f5c57604051637ad404bf60e11b8152600481018490526024016107cb565b60048160c001516005811115610f7457610f746123ee565b14610fb3578060c001516005811115610f8f57610f8f6123ee565b604051633c053f9d60e21b81526004810191909152602481018490526044016107cb565b600081602001516001600160a01b0316803b806020016040519081016040528181526000908060200190933c805190602001209050807f00000000000000000000000000000000000000000000000000000000000000001461103857602082015160405162a2307960e51b81526001600160a01b0390911660048201526024016107cb565b60035480156111095760e08301515181811461106a57604051637ad404bf60e11b8152600481018790526024016107cb565b60005b81811015611106578460e00151818151811061108b5761108b612134565b602002602001015163ffffffff16600382815481106110ac576110ac612134565b9060005260206000200154146110f657600381815481106110cf576110cf612134565b9060005260206000200154604051632ab10b0b60e21b81526004016107cb91815260200190565b6110ff8161214a565b905061106d565b50505b6111258584600001516bffffffffffffffffffffffff16611aca565b600085815260046020908152604082209085015181546001600160a01b03821673ffffffffffffffffffffffffffffffffffffffff199182161783556001830180549091163317905590919061117a90611b38565b80519091506111929060028401906020840190611e34565b50426003830155600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001879055604051632142170760e11b8152336004820152306024820152604481018890527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342842e0e90606401600060405180830381600087803b15801561123c57600080fd5b505af1158015611250573d6000803e3d6000fd5b5050505084602001516001600160a01b0316336001600160a01b0316887f5d43ac9b1b213902df90d405b0006308578486b6c62182c5df202ed572c844e48460405161129c9190612022565b60405180910390a450505050505050565b606060038054806020026020016040519081016040528092919081815260200182805480156112fb57602002820191906000526020600020905b8154815260200190600101908083116112e7575b5050505050905090565b606080600060608060008060008060008060008061132161174b565b96509650965096509650965096506000861115611525576000878611156114945760008060015b898110156113e657888b88838151811061136457611364612134565b602002602001015161137691906121b1565b61138091906121c8565b925061138c8383611eaa565b91508781815181106113a0576113a0612134565b60200260200101519350826004600086815260200190815260200160002060040160008282546113d09190611eaa565b909155506113df90508161214a565b9050611348565b50878a876000815181106113fc576113fc612134565b602002602001015161140e91906121b1565b61141891906121c8565b91506114248282611eaa565b90508660008151811061143957611439612134565b60200260200101519250808a111561146257611455818b612163565b61145f9083611eaa565b91505b60008381526004602081905260408220018054849290611483908490611eaa565b9091555060009a5061151e92505050565b60005b87811015611510578581815181106114b1576114b1612134565b602002602001015191508481815181106114cd576114cd612134565b60200260200101516004600084815260200190815260200160002060040160008282546114fa9190611eaa565b9091555061150990508161214a565b9050611497565b5061151b8689612163565b97505b5060018790555b8051156115ef5760005b82518110156115ac57600083828151811061154c5761154c612134565b6020026020010151905082828151811061156857611568612134565b6020026020010151600460008381526020019081526020016000206002019080519060200190611599929190611e34565b5050806115a59061214a565b905061152f565b50426002556040805188815260208101889052600199507f21d81d5d656869e8ce3ba8d65526a2f0dbbcd3d36f5f9999eb7c84360e45eced910160405180910390a15b909c909b509399509097509550929350915050565b60058181548110610a7057600080fd5b606060058054806020026020016040519081016040528092919081815260200182805480156112fb57602002820191906000526020600020908154815260200190600101908083116112e7575050505050905090565b60007f000000000000000000000000000000000000000000000000000000000000000060025461169a9190611eaa565b905090565b806000808282546116b09190612163565b90915550506040516000906001600160a01b0384169083908381818185875af1925050503d8060008114611700576040519150601f19603f3d011682016040523d82523d6000602084013e611705565b606091505b50509050806117465760405163cd3f165960e01b8152600060048201523060248201526001600160a01b0384166044820152606481018390526084016107cb565b505050565b6002546001549060009081906060908190819081907f000000000000000000000000000000000000000000000000000000000000000061178b8242612163565b101580156117995750600088115b15611ac0576005548067ffffffffffffffff8111156117ba576117ba6121ea565b6040519080825280602002602001820160405280156117e3578160200160208202803683370190505b5093508067ffffffffffffffff8111156117ff576117ff6121ea565b604051908082528060200260200182016040528015611828578160200160208202803683370190505b5095508067ffffffffffffffff811115611844576118446121ea565b60405190808252806020026020018201604052801561186d578160200160208202803683370190505b5094508067ffffffffffffffff811115611889576118896121ea565b6040519080825280602002602001820160405280156118bc57816020015b60608152602001906001900390816118a75790505b50925060005b81811015611abd57600581815481106118dd576118dd612134565b90600052602060002001548582815181106118fa576118fa612134565b60200260200101818152505060006004600087848151811061191e5761191e612134565b6020908102919091018101518252810191909152604001600020805490915061194f906001600160a01b0316611b38565b85838151811061196157611961612134565b6020908102919091010152600381015484908181111561197f578091505b6119898242612163565b90506000611a038886815181106119a2576119a2612134565b6020026020010151856002018054806020026020016040519081016040528092919081815260200182805480156119f857602002820191906000526020600020905b8154815260200190600101908083116119e4575b505050505084611b49565b90508015611aa8576000611a37837f00000000000000000000000000000000000000000000000000000000000000006121b1565b9050611a43818e611eaa565b9c50808b8f81518110611a5857611a58612134565b602002602001018181525050898681518110611a7657611a76612134565b60200260200101518c8f81518110611a9057611a90612134565b6020908102919091010152611aa48e61214a565b9d50505b5050505080611ab69061214a565b90506118c2565b50505b5090919293949596565b7f0000000000000000000000000000000000000000000000000000000000000000811015611b345760405163491a2bb160e01b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000060248201526044016107cb565b5050565b6060611b4382611b5e565b92915050565b6000611b56848484611cac565b949350505050565b6040805160028082526060808301845292602083019080368337019050509050816001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be09190612404565b81600081518110611bf357611bf3612134565b6020908102919091010152604051637af7347360e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690637af7347390602401602060405180830381865afa158015611c64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c889190612404565b81600181518110611c9b57611c9b612134565b602002602001018181525050919050565b60008082118015611cf0575082600081518110611ccb57611ccb612134565b602002602001015184600081518110611ce657611ce6612134565b6020026020010151115b8015611d2f575082600181518110611d0a57611d0a612134565b602002602001015184600181518110611d2557611d25612134565b6020026020010151115b15611e0c57600083600081518110611d4957611d49612134565b602002602001015185600081518110611d6457611d64612134565b6020026020010151611d769190612163565b9050600084600181518110611d8d57611d8d612134565b602002602001015186600181518110611da857611da8612134565b6020026020010151611dba9190612163565b9050818111611e0957600084611dd883670de0b6b3a76400006121b1565b611de291906121c8565b7f000000000000000000000000000000000000000000000000000000000000000011159350505b50505b9392505050565b5080546000825590600052602060002090810190611e319190611e7f565b50565b828054828255906000526020600020908101928215611e6f579160200282015b82811115611e6f578251825591602001919060010190611e54565b50611e7b929150611e7f565b5090565b5b80821115611e7b5760008155600101611e80565b634e487b7160e01b600052601160045260246000fd5b80820180821115611b4357611b43611e94565b6001600160a01b0381168114611e3157600080fd5b600080600080600060808688031215611eea57600080fd5b8535611ef581611ebd565b94506020860135611f0581611ebd565b935060408601359250606086013567ffffffffffffffff80821115611f2957600080fd5b818801915088601f830112611f3d57600080fd5b813581811115611f4c57600080fd5b896020828501011115611f5e57600080fd5b9699959850939650602001949392505050565b600060208284031215611f8357600080fd5b5035919050565b600081518084526020808501945080840160005b83811015611fba57815187529582019590820190600101611f9e565b509495945050505050565b6020815260006001600160a01b0380845116602084015280602085015116604084015250604083015160a0606084015261200260c0840182611f8a565b905060608401516080840152608084015160a08401528091505092915050565b602081526000611e0c6020830184611f8a565b60c08152600061204860c0830189611f8a565b6020838203818501528189518084528284019150828160051b850101838c0160005b8381101561209857601f19878403018552612086838351611f8a565b9486019492509085019060010161206a565b50508a604088015286810360608801526120b2818b611f8a565b94505050505082810360808401526120ca8186611f8a565b9150506120db60a083018415159052565b979650505050505050565b600060208083528351808285015260005b81811015612113578581018301518582016040015282016120f7565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052603260045260246000fd5b60006001820161215c5761215c611e94565b5060010190565b81810381811115611b4357611b43611e94565b634e487b7160e01b600052603160045260246000fd5b60608152600061219f6060830186611f8a565b60208301949094525060400152919050565b8082028115828204841417611b4357611b43611e94565b6000826121e557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff81118282101715612224576122246121ea565b60405290565b80516bffffffffffffffffffffffff8116811461224657600080fd5b919050565b805161224681611ebd565b805163ffffffff8116811461224657600080fd5b80516006811061224657600080fd5b600082601f83011261228a57600080fd5b8151602067ffffffffffffffff808311156122a7576122a76121ea565b8260051b604051601f19603f830116810181811084821117156122cc576122cc6121ea565b6040529384528581018301938381019250878511156122ea57600080fd5b83870191505b848210156120db5761230182612256565b835291830191908301906122f0565b60006020828403121561232257600080fd5b815167ffffffffffffffff8082111561233a57600080fd5b90830190610100828603121561234f57600080fd5b612357612200565b6123608361222a565b815261236e6020840161224b565b60208201526040830151604082015261238960608401612256565b606082015261239a60808401612256565b60808201526123ab60a08401612256565b60a08201526123bc60c0840161226a565b60c082015260e0830151828111156123d357600080fd5b6123df87828601612279565b60e08301525095945050505050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561241657600080fd5b505191905056fea2646970667358221220d0ed0dbf857d059581672cadbd30f4756de4459e1f5997713e8c9fd73eb26dff64736f6c63430008150033", + "deployedBytecode": "0x6080604052600436106101bb5760003560e01c8063a694fc3a116100ec578063e1f1176d1161008a578063eb338c9611610064578063eb338c96146106f5578063f189e85a14610715578063f4dce7141461072a578063ffa1ad741461073f57600080fd5b8063e1f1176d14610659578063e77cdcc91461068d578063eacdaabc146106c157600080fd5b8063b69ef8a8116100c6578063b69ef8a8146105a6578063c2c4c5c1146105bc578063cbcf252a146105e3578063cd25fe381461061757600080fd5b8063a694fc3a146104e8578063a74466ad14610508578063b15087601461058457600080fd5b80635829c5ec1161015957806378e061361161013357806378e0613614610451578063809cee2f1461047157806382a8ea58146104a5578063879d9090146104d257600080fd5b80635829c5ec1461039d578063592cf3fb146103d157806375af4b6d1461040557600080fd5b80633e732997116101955780633e732997146102ff57806342cde4e81461031557806352c824f51461034957806356e760581461037d57600080fd5b8063150b7a021461023957806316a751721461029b5780632e17de78146102dd57600080fd5b36610234576000346000546101d09190611eaa565b90506000346001546101e29190611eaa565b60008390556001819055604080513481526020810185905290810182905290915033907f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e9060600160405180910390a2005b600080fd5b34801561024557600080fd5b50610265610254366004611ed2565b630a85bd0160e11b95945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b3480156102a757600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610292565b3480156102e957600080fd5b506102fd6102f8366004611f71565b61077d565b005b34801561030b57600080fd5b506102cf60025481565b34801561032157600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561035557600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561038957600080fd5b506102cf610398366004611f71565b610a60565b3480156103a957600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103dd57600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561041157600080fd5b506104397f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610292565b34801561045d57600080fd5b506102cf61046c366004611f71565b610a81565b34801561047d57600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b157600080fd5b506104c56104c0366004611f71565b610c20565b6040516102929190611fc5565b3480156104de57600080fd5b506102cf60015481565b3480156104f457600080fd5b506102fd610503366004611f71565b610d06565b34801561051457600080fd5b50610559610523366004611f71565b600460208190526000918252604090912080546001820154600383015492909301546001600160a01b0391821693909116919084565b604080516001600160a01b039586168152949093166020850152918301526060820152608001610292565b34801561059057600080fd5b506105996112ad565b6040516102929190612022565b3480156105b257600080fd5b506102cf60005481565b3480156105c857600080fd5b506105d1611305565b60405161029296959493929190612035565b3480156105ef57600080fd5b506104397f000000000000000000000000000000000000000000000000000000000000000081565b34801561062357600080fd5b50610649610632366004611f71565b600090815260046020526040902060030154151590565b6040519015158152602001610292565b34801561066557600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561069957600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106cd57600080fd5b506102cf7f000000000000000000000000000000000000000000000000000000000000000081565b34801561070157600080fd5b506102cf610710366004611f71565b611604565b34801561072157600080fd5b50610599611614565b34801561073657600080fd5b506102cf61166a565b34801561074b57600080fd5b50610770604051806040016040528060058152602001640302e312e360dc1b81525081565b60405161029291906120e6565b600081815260046020526040902060018101546001600160a01b031633146107d457600181015460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044015b60405180910390fd5b6000806107df611305565b9550505050509150806107f7576107f4611614565b91505b60005b8251811015610834578483828151811061081657610816612134565b602002602001015103156108345761082d8161214a565b90506107fa565b6004840154600285018054604080516020808402820181019092528281526000939092909183018282801561088857602002820191906000526020600020905b815481526020019060010190808311610874575b5050506003890154895460008c8152600460205260408120805473ffffffffffffffffffffffffffffffffffffffff199081168255600182018054909116905595965091946001600160a01b03909116935091506108e96002830182611e13565b506000600382018190556004909101556005805461090990600190612163565b8154811061091957610919612134565b90600052602060002001546005868154811061093757610937612134565b600091825260209091200155600580548061095457610954612176565b600082815260208120820160001990810191909155019055604051632142170760e11b8152306004820152336024820152604481018a90526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b1580156109da57600080fd5b505af11580156109ee573d6000803e3d6000fd5b505050506000841115610a0557610a05818561169f565b806001600160a01b0316336001600160a01b03168a7f246ee6115bfd84e00097b16569c2ff2f822026bb9595a82cd2c1e69d4b6ea50c868887604051610a4d9392919061218c565b60405180910390a4505050505050505050565b60038181548110610a7057600080fd5b600091825260209091200154905081565b6000818152600460209081526040808320815160a08101835281546001600160a01b0390811682526001830154168185015260028201805484518187028101870186528181528796939586019390929190830182828015610b0157602002820191906000526020600020905b815481526020019060010190808311610aed575b50505050508152602001600382015481526020016004820154815250509050806080015191508060600151600003610b4f5760405163e0606b6360e01b8152600481018490526024016107cb565b6000806000806000610b5f61174b565b50509450945094509450945060005b84811015610c145788838281518110610b8957610b89612134565b602002602001015103610c045785841115610bdf578386838381518110610bb257610bb2612134565b6020026020010151610bc491906121b1565b610bce91906121c8565b610bd89089611eaa565b9750610c14565b818181518110610bf157610bf1612134565b602002602001015188610bd89190611eaa565b610c0d8161214a565b9050610b6e565b50505050505050919050565b610c646040518060a0016040528060006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081525090565b600082815260046020908152604091829020825160a08101845281546001600160a01b0390811682526001830154168184015260028201805485518186028101860187528181529295939493860193830182828015610ce257602002820191906000526020600020905b815481526020019060010190808311610cce575b50505050508152602001600382015481526020016004820154815250509050919050565b600154600003610d295760405163afb0be3360e01b815260040160405180910390fd5b6005547f00000000000000000000000000000000000000000000000000000000000000008103610d8e5760405163fd20861560e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201526024016107cb565b60405163ef0e239b60e01b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ef0e239b90602401600060405180830381865afa158015610df6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e1e9190810190612310565b9050806080015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014610e6d57604051637ad404bf60e11b8152600481018490526024016107cb565b7f000000000000000000000000000000000000000000000000000000000000000015801590610ec0575080604001517f000000000000000000000000000000000000000000000000000000000000000014155b15610ee157604051637ad404bf60e11b8152600481018490526024016107cb565b60007f0000000000000000000000000000000000000000000000000000000000000000118015610f3b5750806060015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014155b15610f5c57604051637ad404bf60e11b8152600481018490526024016107cb565b60048160c001516005811115610f7457610f746123ee565b14610fb3578060c001516005811115610f8f57610f8f6123ee565b604051633c053f9d60e21b81526004810191909152602481018490526044016107cb565b600081602001516001600160a01b0316803b806020016040519081016040528181526000908060200190933c805190602001209050807f00000000000000000000000000000000000000000000000000000000000000001461103857602082015160405162a2307960e51b81526001600160a01b0390911660048201526024016107cb565b60035480156111095760e08301515181811461106a57604051637ad404bf60e11b8152600481018790526024016107cb565b60005b81811015611106578460e00151818151811061108b5761108b612134565b602002602001015163ffffffff16600382815481106110ac576110ac612134565b9060005260206000200154146110f657600381815481106110cf576110cf612134565b9060005260206000200154604051632ab10b0b60e21b81526004016107cb91815260200190565b6110ff8161214a565b905061106d565b50505b6111258584600001516bffffffffffffffffffffffff16611aca565b600085815260046020908152604082209085015181546001600160a01b03821673ffffffffffffffffffffffffffffffffffffffff199182161783556001830180549091163317905590919061117a90611b38565b80519091506111929060028401906020840190611e34565b50426003830155600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001879055604051632142170760e11b8152336004820152306024820152604481018890527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342842e0e90606401600060405180830381600087803b15801561123c57600080fd5b505af1158015611250573d6000803e3d6000fd5b5050505084602001516001600160a01b0316336001600160a01b0316887f5d43ac9b1b213902df90d405b0006308578486b6c62182c5df202ed572c844e48460405161129c9190612022565b60405180910390a450505050505050565b606060038054806020026020016040519081016040528092919081815260200182805480156112fb57602002820191906000526020600020905b8154815260200190600101908083116112e7575b5050505050905090565b606080600060608060008060008060008060008061132161174b565b96509650965096509650965096506000861115611525576000878611156114945760008060015b898110156113e657888b88838151811061136457611364612134565b602002602001015161137691906121b1565b61138091906121c8565b925061138c8383611eaa565b91508781815181106113a0576113a0612134565b60200260200101519350826004600086815260200190815260200160002060040160008282546113d09190611eaa565b909155506113df90508161214a565b9050611348565b50878a876000815181106113fc576113fc612134565b602002602001015161140e91906121b1565b61141891906121c8565b91506114248282611eaa565b90508660008151811061143957611439612134565b60200260200101519250808a111561146257611455818b612163565b61145f9083611eaa565b91505b60008381526004602081905260408220018054849290611483908490611eaa565b9091555060009a5061151e92505050565b60005b87811015611510578581815181106114b1576114b1612134565b602002602001015191508481815181106114cd576114cd612134565b60200260200101516004600084815260200190815260200160002060040160008282546114fa9190611eaa565b9091555061150990508161214a565b9050611497565b5061151b8689612163565b97505b5060018790555b8051156115ef5760005b82518110156115ac57600083828151811061154c5761154c612134565b6020026020010151905082828151811061156857611568612134565b6020026020010151600460008381526020019081526020016000206002019080519060200190611599929190611e34565b5050806115a59061214a565b905061152f565b50426002556040805188815260208101889052600199507f21d81d5d656869e8ce3ba8d65526a2f0dbbcd3d36f5f9999eb7c84360e45eced910160405180910390a15b909c909b509399509097509550929350915050565b60058181548110610a7057600080fd5b606060058054806020026020016040519081016040528092919081815260200182805480156112fb57602002820191906000526020600020908154815260200190600101908083116112e7575050505050905090565b60007f000000000000000000000000000000000000000000000000000000000000000060025461169a9190611eaa565b905090565b806000808282546116b09190612163565b90915550506040516000906001600160a01b0384169083908381818185875af1925050503d8060008114611700576040519150601f19603f3d011682016040523d82523d6000602084013e611705565b606091505b50509050806117465760405163cd3f165960e01b8152600060048201523060248201526001600160a01b0384166044820152606481018390526084016107cb565b505050565b6002546001549060009081906060908190819081907f000000000000000000000000000000000000000000000000000000000000000061178b8242612163565b101580156117995750600088115b15611ac0576005548067ffffffffffffffff8111156117ba576117ba6121ea565b6040519080825280602002602001820160405280156117e3578160200160208202803683370190505b5093508067ffffffffffffffff8111156117ff576117ff6121ea565b604051908082528060200260200182016040528015611828578160200160208202803683370190505b5095508067ffffffffffffffff811115611844576118446121ea565b60405190808252806020026020018201604052801561186d578160200160208202803683370190505b5094508067ffffffffffffffff811115611889576118896121ea565b6040519080825280602002602001820160405280156118bc57816020015b60608152602001906001900390816118a75790505b50925060005b81811015611abd57600581815481106118dd576118dd612134565b90600052602060002001548582815181106118fa576118fa612134565b60200260200101818152505060006004600087848151811061191e5761191e612134565b6020908102919091018101518252810191909152604001600020805490915061194f906001600160a01b0316611b38565b85838151811061196157611961612134565b6020908102919091010152600381015484908181111561197f578091505b6119898242612163565b90506000611a038886815181106119a2576119a2612134565b6020026020010151856002018054806020026020016040519081016040528092919081815260200182805480156119f857602002820191906000526020600020905b8154815260200190600101908083116119e4575b505050505084611b49565b90508015611aa8576000611a37837f00000000000000000000000000000000000000000000000000000000000000006121b1565b9050611a43818e611eaa565b9c50808b8f81518110611a5857611a58612134565b602002602001018181525050898681518110611a7657611a76612134565b60200260200101518c8f81518110611a9057611a90612134565b6020908102919091010152611aa48e61214a565b9d50505b5050505080611ab69061214a565b90506118c2565b50505b5090919293949596565b7f0000000000000000000000000000000000000000000000000000000000000000811015611b345760405163491a2bb160e01b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000060248201526044016107cb565b5050565b6060611b4382611b5e565b92915050565b6000611b56848484611cac565b949350505050565b6040805160028082526060808301845292602083019080368337019050509050816001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be09190612404565b81600081518110611bf357611bf3612134565b6020908102919091010152604051637af7347360e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690637af7347390602401602060405180830381865afa158015611c64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c889190612404565b81600181518110611c9b57611c9b612134565b602002602001018181525050919050565b60008082118015611cf0575082600081518110611ccb57611ccb612134565b602002602001015184600081518110611ce657611ce6612134565b6020026020010151115b8015611d2f575082600181518110611d0a57611d0a612134565b602002602001015184600181518110611d2557611d25612134565b6020026020010151115b15611e0c57600083600081518110611d4957611d49612134565b602002602001015185600081518110611d6457611d64612134565b6020026020010151611d769190612163565b9050600084600181518110611d8d57611d8d612134565b602002602001015186600181518110611da857611da8612134565b6020026020010151611dba9190612163565b9050818111611e0957600084611dd883670de0b6b3a76400006121b1565b611de291906121c8565b7f000000000000000000000000000000000000000000000000000000000000000011159350505b50505b9392505050565b5080546000825590600052602060002090810190611e319190611e7f565b50565b828054828255906000526020600020908101928215611e6f579160200282015b82811115611e6f578251825591602001919060010190611e54565b50611e7b929150611e7f565b5090565b5b80821115611e7b5760008155600101611e80565b634e487b7160e01b600052601160045260246000fd5b80820180821115611b4357611b43611e94565b6001600160a01b0381168114611e3157600080fd5b600080600080600060808688031215611eea57600080fd5b8535611ef581611ebd565b94506020860135611f0581611ebd565b935060408601359250606086013567ffffffffffffffff80821115611f2957600080fd5b818801915088601f830112611f3d57600080fd5b813581811115611f4c57600080fd5b896020828501011115611f5e57600080fd5b9699959850939650602001949392505050565b600060208284031215611f8357600080fd5b5035919050565b600081518084526020808501945080840160005b83811015611fba57815187529582019590820190600101611f9e565b509495945050505050565b6020815260006001600160a01b0380845116602084015280602085015116604084015250604083015160a0606084015261200260c0840182611f8a565b905060608401516080840152608084015160a08401528091505092915050565b602081526000611e0c6020830184611f8a565b60c08152600061204860c0830189611f8a565b6020838203818501528189518084528284019150828160051b850101838c0160005b8381101561209857601f19878403018552612086838351611f8a565b9486019492509085019060010161206a565b50508a604088015286810360608801526120b2818b611f8a565b94505050505082810360808401526120ca8186611f8a565b9150506120db60a083018415159052565b979650505050505050565b600060208083528351808285015260005b81811015612113578581018301518582016040015282016120f7565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052603260045260246000fd5b60006001820161215c5761215c611e94565b5060010190565b81810381811115611b4357611b43611e94565b634e487b7160e01b600052603160045260246000fd5b60608152600061219f6060830186611f8a565b60208301949094525060400152919050565b8082028115828204841417611b4357611b43611e94565b6000826121e557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff81118282101715612224576122246121ea565b60405290565b80516bffffffffffffffffffffffff8116811461224657600080fd5b919050565b805161224681611ebd565b805163ffffffff8116811461224657600080fd5b80516006811061224657600080fd5b600082601f83011261228a57600080fd5b8151602067ffffffffffffffff808311156122a7576122a76121ea565b8260051b604051601f19603f830116810181811084821117156122cc576122cc6121ea565b6040529384528581018301938381019250878511156122ea57600080fd5b83870191505b848210156120db5761230182612256565b835291830191908301906122f0565b60006020828403121561232257600080fd5b815167ffffffffffffffff8082111561233a57600080fd5b90830190610100828603121561234f57600080fd5b612357612200565b6123608361222a565b815261236e6020840161224b565b60208201526040830151604082015261238960608401612256565b606082015261239a60808401612256565b60808201526123ab60a08401612256565b60a08201526123bc60c0840161226a565b60c082015260e0830151828111156123d357600080fd5b6123df87828601612279565b60e08301525095945050505050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561241657600080fd5b505191905056fea2646970667358221220d0ed0dbf857d059581672cadbd30f4756de4459e1f5997713e8c9fd73eb26dff64736f6c63430008150033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/abis/0.8.21/ServiceStakingTokenMechUsage.json b/abis/0.8.21/ServiceStakingTokenMechUsage.json index a3880e6..6eb68a9 100644 --- a/abis/0.8.21/ServiceStakingTokenMechUsage.json +++ b/abis/0.8.21/ServiceStakingTokenMechUsage.json @@ -835,6 +835,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "getAgentIds", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "getNextRewardCheckpointTimestamp", @@ -854,13 +867,59 @@ "outputs": [ { "internalType": "uint256[]", - "name": "serviceIds", + "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "serviceId", + "type": "uint256" + } + ], + "name": "getServiceInfo", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "multisig", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "nonces", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "tsStart", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "internalType": "struct ServiceInfo", + "name": "sInfo", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -1150,8 +1209,8 @@ "type": "function" } ], - "bytecode": "0x6102206040523480156200001257600080fd5b5060405162002b1438038062002b148339810160408190526200003591620003f8565b8086868686868484828260000151600014806200005457506020830151155b806200006257506060830151155b806200007057506080830151155b806200007e575060a0830151155b156200009d57604051637c946ed760e01b815260040160405180910390fd5b600283604001511015620000d957604080840151905163491a2bb160e01b81526004810191909152600260248201526044015b60405180910390fd5b6001600160a01b038216620001015760405163d92e233d60e01b815260040160405180910390fd5b82516080908152602084015160a0908152604085015160c052606085015160e09081529185015161010090815290850151610120526001600160a01b038416610180529084015161014052830151610160526000805b8460c00151518110156200023957818560c0015182815181106200017f576200017f62000513565b602002602001015111620001cb578460c001518181518110620001a657620001a662000513565b6020026020010151604051632ab10b0b60e21b8152600401620000d091815260200190565b8460c001518181518110620001e457620001e462000513565b6020908102919091010151600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b018190559150620002318162000529565b905062000157565b50816200025957604051637c946ed760e01b815260040160405180910390fd5b506101a0525050426002556001600160a01b03821615806200028257506001600160a01b038316155b15620002a15760405163d92e233d60e01b815260040160405180910390fd5b506001600160a01b039081166101e0529081166101c05283169150620002db90505760405162ca95f960e81b815260040160405180910390fd5b6001600160a01b0316610200525062000551945050505050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715620003315762000331620002f5565b60405290565b600082601f8301126200034957600080fd5b815160206001600160401b0380831115620003685762000368620002f5565b8260051b604051601f19603f83011681018181108482111715620003905762000390620002f5565b604052938452858101830193838101925087851115620003af57600080fd5b83870191505b84821015620003d057815183529183019190830190620003b5565b979650505050505050565b80516001600160a01b0381168114620003f357600080fd5b919050565b60008060008060008060c087890312156200041257600080fd5b86516001600160401b03808211156200042a57600080fd5b90880190610120828b0312156200044057600080fd5b6200044a6200030b565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c0830151828111156200049357600080fd5b620004a18c82860162000337565b60c08301525060e083810151908201526101009283015192810192909252509550620004d060208801620003db565b9450620004e060408801620003db565b9350620004f060608801620003db565b9250608087015191506200050760a08801620003db565b90509295509295509295565b634e487b7160e01b600052603260045260246000fd5b6000600182016200054a57634e487b7160e01b600052601160045260246000fd5b5060010190565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051610200516124856200068f600039600081816103960152611c5001526000818161036f01528181611062015281816114d70152818161196001526119a401526000818161026301526118e60152600081816103d00152610d6d0152600081816104b8015281816107fe01528181610b290152610f7201526000818161051401528181610bf10152610c200152600081816102c001528181610c670152610c9b0152600081816103210152610baf0152600081816103480152611e170152600081816102e70152818161148a015261155b01526000818161053b015281816119db0152611a32015260008181610562015261180c01526000818161022e01528181610ab00152610ae401526124856000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063879d909011610104578063cd25fe38116100a2578063eb338c9611610071578063eb338c9614610584578063f189e85a14610597578063f4dce714146105ac578063ffa1ad74146105b457600080fd5b8063cd25fe38146104da578063e1f1176d1461050f578063e77cdcc914610536578063eacdaabc1461055d57600080fd5b8063b69ef8a8116100de578063b69ef8a81461047d578063b6b55f2514610486578063c2c4c5c114610499578063cbcf252a146104b357600080fd5b8063879d9090146103f2578063a694fc3a146103fb578063a74466ad1461040e57600080fd5b806356e760581161017157806372f702f31161014b57806372f702f31461036a57806375af4b6d1461039157806378e06136146103b8578063809cee2f146103cb57600080fd5b806356e76058146103095780635829c5ec1461031c578063592cf3fb1461034357600080fd5b80632e17de78116101ad5780632e17de781461029d5780633e732997146102b257806342cde4e8146102bb57806352c824f5146102e257600080fd5b8063150b7a02146101d457806316a7517214610229578063287140511461025e575b600080fd5b6101f36101e2366004611edc565b630a85bd0160e11b95945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6102507f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610220565b6102857f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610220565b6102b06102ab366004611f7b565b6105e5565b005b61025060025481565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b610250610317366004611f7b565b6108c8565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b6102857f000000000000000000000000000000000000000000000000000000000000000081565b6102857f000000000000000000000000000000000000000000000000000000000000000081565b6102506103c6366004611f7b565b6108e9565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b61025060015481565b6102b0610409366004611f7b565b610a88565b61045261041c366004611f7b565b600460208190526000918252604090912080546001820154600383015492909301546001600160a01b0391821693909116919084565b604080516001600160a01b039586168152949093166020850152918301526060820152608001610220565b61025060005481565b6102b0610494366004611f7b565b61102f565b6104a16110d1565b60405161022096959493929190611fcf565b6102857f000000000000000000000000000000000000000000000000000000000000000081565b6104ff6104e8366004611f7b565b600090815260046020526040902060030154151590565b6040519015158152602001610220565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b610250610592366004611f7b565b6113d0565b61059f6113e0565b60405161022091906120a7565b610250611486565b6105d8604051806040016040528060058152602001640302e312e360dc1b81525081565b60405161022091906120ba565b600081815260046020526040902060018101546001600160a01b0316331461063c57600181015460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044015b60405180910390fd5b6000806106476110d1565b95505050505091508061065f5761065c6113e0565b91505b60005b825181101561069c578483828151811061067e5761067e612108565b6020026020010151031561069c5761069581612134565b9050610662565b600484015460028501805460408051602080840282018101909252828152600093909290918301828280156106f057602002820191906000526020600020905b8154815260200190600101908083116106dc575b5050506003890154895460008c8152600460205260408120805473ffffffffffffffffffffffffffffffffffffffff199081168255600182018054909116905595965091946001600160a01b03909116935091506107516002830182611e46565b50600060038201819055600490910155600580546107719060019061214d565b8154811061078157610781612108565b90600052602060002001546005868154811061079f5761079f612108565b60009182526020909120015560058054806107bc576107bc612160565b600082815260208120820160001990810191909155019055604051632142170760e11b8152306004820152336024820152604481018a90526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b15801561084257600080fd5b505af1158015610856573d6000803e3d6000fd5b50505050600084111561086d5761086d81856114bb565b806001600160a01b0316336001600160a01b03168a7f246ee6115bfd84e00097b16569c2ff2f822026bb9595a82cd2c1e69d4b6ea50c8688876040516108b593929190612176565b60405180910390a4505050505050505050565b600381815481106108d857600080fd5b600091825260209091200154905081565b6000818152600460209081526040808320815160a08101835281546001600160a01b039081168252600183015416818501526002820180548451818702810187018652818152879693958601939092919083018282801561096957602002820191906000526020600020905b815481526020019060010190808311610955575b505050505081526020016003820154815260200160048201548152505090508060800151915080606001516000036109b75760405163e0606b6360e01b815260048101849052602401610633565b60008060008060006109c7611544565b50509450945094509450945060005b84811015610a7c57888382815181106109f1576109f1612108565b602002602001015103610a6c5785841115610a47578386838381518110610a1a57610a1a612108565b6020026020010151610a2c919061219b565b610a3691906121b2565b610a4090896121d4565b9750610a7c565b818181518110610a5957610a59612108565b602002602001015188610a4091906121d4565b610a7581612134565b90506109d6565b50505050505050919050565b600154600003610aab5760405163afb0be3360e01b815260040160405180910390fd5b6005547f00000000000000000000000000000000000000000000000000000000000000008103610b105760405163fd20861560e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820152602401610633565b60405163ef0e239b60e01b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ef0e239b90602401600060405180830381865afa158015610b78573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ba0919081019061230d565b9050806080015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014610bef57604051637ad404bf60e11b815260048101849052602401610633565b7f000000000000000000000000000000000000000000000000000000000000000015801590610c42575080604001517f000000000000000000000000000000000000000000000000000000000000000014155b15610c6357604051637ad404bf60e11b815260048101849052602401610633565b60007f0000000000000000000000000000000000000000000000000000000000000000118015610cbd5750806060015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014155b15610cde57604051637ad404bf60e11b815260048101849052602401610633565b60048160c001516005811115610cf657610cf66123eb565b14610d35578060c001516005811115610d1157610d116123eb565b604051633c053f9d60e21b8152600481019190915260248101849052604401610633565b600081602001516001600160a01b0316803b806020016040519081016040528181526000908060200190933c805190602001209050807f000000000000000000000000000000000000000000000000000000000000000014610dba57602082015160405162a2307960e51b81526001600160a01b039091166004820152602401610633565b6003548015610e8b5760e083015151818114610dec57604051637ad404bf60e11b815260048101879052602401610633565b60005b81811015610e88578460e001518181518110610e0d57610e0d612108565b602002602001015163ffffffff1660038281548110610e2e57610e2e612108565b906000526020600020015414610e785760038181548110610e5157610e51612108565b9060005260206000200154604051632ab10b0b60e21b815260040161063391815260200190565b610e8181612134565b9050610def565b50505b610ea78584600001516bffffffffffffffffffffffff166118c3565b600085815260046020908152604082209085015181546001600160a01b03821673ffffffffffffffffffffffffffffffffffffffff1991821617835560018301805490911633179055909190610efc90611a64565b8051909150610f149060028401906020840190611e67565b50426003830155600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001879055604051632142170760e11b8152336004820152306024820152604481018890527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342842e0e90606401600060405180830381600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b5050505084602001516001600160a01b0316336001600160a01b0316887f5d43ac9b1b213902df90d405b0006308578486b6c62182c5df202ed572c844e48460405161101e91906120a7565b60405180910390a450505050505050565b60008160005461103f91906121d4565b905060008260015461105191906121d4565b6000839055600181905590506110897f0000000000000000000000000000000000000000000000000000000000000000333086611a75565b604080518481526020810184905290810182905233907f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e9060600160405180910390a2505050565b60608060006060806000806000806000806000806110ed611544565b965096509650965096509650965060008611156112f1576000878611156112605760008060015b898110156111b257888b88838151811061113057611130612108565b6020026020010151611142919061219b565b61114c91906121b2565b925061115883836121d4565b915087818151811061116c5761116c612108565b602002602001015193508260046000868152602001908152602001600020600401600082825461119c91906121d4565b909155506111ab905081612134565b9050611114565b50878a876000815181106111c8576111c8612108565b60200260200101516111da919061219b565b6111e491906121b2565b91506111f082826121d4565b90508660008151811061120557611205612108565b60200260200101519250808a111561122e57611221818b61214d565b61122b90836121d4565b91505b6000838152600460208190526040822001805484929061124f9084906121d4565b9091555060009a506112ea92505050565b60005b878110156112dc5785818151811061127d5761127d612108565b6020026020010151915084818151811061129957611299612108565b60200260200101516004600084815260200190815260200160002060040160008282546112c691906121d4565b909155506112d5905081612134565b9050611263565b506112e7868961214d565b97505b5060018790555b8051156113bb5760005b825181101561137857600083828151811061131857611318612108565b6020026020010151905082828151811061133457611334612108565b6020026020010151600460008381526020019081526020016000206002019080519060200190611365929190611e67565b50508061137190612134565b90506112fb565b50426002556040805188815260208101889052600199507f21d81d5d656869e8ce3ba8d65526a2f0dbbcd3d36f5f9999eb7c84360e45eced910160405180910390a15b909c909b509399509097509550929350915050565b600581815481106108d857600080fd5b6005546060908067ffffffffffffffff8111156113ff576113ff6121e7565b604051908082528060200260200182016040528015611428578160200160208202803683370190505b50915060005b81811015611481576005818154811061144957611449612108565b906000526020600020015483828151811061146657611466612108565b602090810291909101015261147a81612134565b905061142e565b505090565b60007f00000000000000000000000000000000000000000000000000000000000000006002546114b691906121d4565b905090565b806000808282546114cc919061214d565b909155506114fd90507f00000000000000000000000000000000000000000000000000000000000000008383611aff565b816001600160a01b03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648260405161153891815260200190565b60405180910390a25050565b6002546001549060009081906060908190819081907f0000000000000000000000000000000000000000000000000000000000000000611584824261214d565b101580156115925750600088115b156118b9576005548067ffffffffffffffff8111156115b3576115b36121e7565b6040519080825280602002602001820160405280156115dc578160200160208202803683370190505b5093508067ffffffffffffffff8111156115f8576115f86121e7565b604051908082528060200260200182016040528015611621578160200160208202803683370190505b5095508067ffffffffffffffff81111561163d5761163d6121e7565b604051908082528060200260200182016040528015611666578160200160208202803683370190505b5094508067ffffffffffffffff811115611682576116826121e7565b6040519080825280602002602001820160405280156116b557816020015b60608152602001906001900390816116a05790505b50925060005b818110156118b657600581815481106116d6576116d6612108565b90600052602060002001548582815181106116f3576116f3612108565b60200260200101818152505060006004600087848151811061171757611717612108565b60209081029190910181015182528101919091526040016000208054909150611748906001600160a01b0316611a64565b85838151811061175a5761175a612108565b60209081029190910101526003810154849081811115611778578091505b611782824261214d565b905060006117fc88868151811061179b5761179b612108565b6020026020010151856002018054806020026020016040519081016040528092919081815260200182805480156117f157602002820191906000526020600020905b8154815260200190600101908083116117dd575b505050505084611b7c565b905080156118a1576000611830837f000000000000000000000000000000000000000000000000000000000000000061219b565b905061183c818e6121d4565b9c50808b8f8151811061185157611851612108565b60200260200101818152505089868151811061186f5761186f612108565b60200260200101518c8f8151811061188957611889612108565b602090810291909101015261189d8e612134565b9d50505b50505050806118af90612134565b90506116bb565b50505b5090919293949596565b604051633cebfa4f60e01b81526004810183905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633cebfa4f906024016040805180830381865afa15801561192c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119509190612401565b91509150816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146119d957604051630b80380d60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015283166024820152604401610633565b7f0000000000000000000000000000000000000000000000000000000000000000816bffffffffffffffffffffffff161015611a5e57604051632b30b24760e21b81526bffffffffffffffffffffffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610633565b50505050565b6060611a6f82611b91565b92915050565b60006040516323b872dd60e01b6000528460045283602452826044526020600060646000808a5af13d15601f3d1160016000511416171691506000606052806040525080611af85760405163abae3d6d60e01b81526001600160a01b03808716600483015280861660248301528416604482015260648101839052608401610633565b5050505050565b600060405163a9059cbb60e01b6000528360045282602452602060006044600080895af13d15601f3d1160016000511416171691506000606052806040525080611a5e5760405163abae3d6d60e01b81526001600160a01b0380861660048301523060248301528416604482015260648101839052608401610633565b6000611b89848484611cdf565b949350505050565b6040805160028082526060808301845292602083019080368337019050509050816001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c139190612436565b81600081518110611c2657611c26612108565b6020908102919091010152604051637af7347360e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690637af7347390602401602060405180830381865afa158015611c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbb9190612436565b81600181518110611cce57611cce612108565b602002602001018181525050919050565b60008082118015611d23575082600081518110611cfe57611cfe612108565b602002602001015184600081518110611d1957611d19612108565b6020026020010151115b8015611d62575082600181518110611d3d57611d3d612108565b602002602001015184600181518110611d5857611d58612108565b6020026020010151115b15611e3f57600083600081518110611d7c57611d7c612108565b602002602001015185600081518110611d9757611d97612108565b6020026020010151611da9919061214d565b9050600084600181518110611dc057611dc0612108565b602002602001015186600181518110611ddb57611ddb612108565b6020026020010151611ded919061214d565b9050818111611e3c57600084611e0b83670de0b6b3a764000061219b565b611e1591906121b2565b7f000000000000000000000000000000000000000000000000000000000000000011159350505b50505b9392505050565b5080546000825590600052602060002090810190611e649190611eb2565b50565b828054828255906000526020600020908101928215611ea2579160200282015b82811115611ea2578251825591602001919060010190611e87565b50611eae929150611eb2565b5090565b5b80821115611eae5760008155600101611eb3565b6001600160a01b0381168114611e6457600080fd5b600080600080600060808688031215611ef457600080fd5b8535611eff81611ec7565b94506020860135611f0f81611ec7565b935060408601359250606086013567ffffffffffffffff80821115611f3357600080fd5b818801915088601f830112611f4757600080fd5b813581811115611f5657600080fd5b896020828501011115611f6857600080fd5b9699959850939650602001949392505050565b600060208284031215611f8d57600080fd5b5035919050565b600081518084526020808501945080840160005b83811015611fc457815187529582019590820190600101611fa8565b509495945050505050565b60c081526000611fe260c0830189611f94565b6020838203818501528189518084528284019150828160051b850101838c016000805b8481101561205857878403601f19018652825180518086529088019088860190845b818110156120435783518352928a0192918a0191600101612027565b50509688019694505091860191600101612005565b5050508a60408801528681036060880152612073818b611f94565b945050505050828103608084015261208b8186611f94565b91505061209c60a083018415159052565b979650505050505050565b602081526000611e3f6020830184611f94565b600060208083528351808285015260005b818110156120e7578581018301518582016040015282016120cb565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121465761214661211e565b5060010190565b81810381811115611a6f57611a6f61211e565b634e487b7160e01b600052603160045260246000fd5b6060815260006121896060830186611f94565b60208301949094525060400152919050565b8082028115828204841417611a6f57611a6f61211e565b6000826121cf57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115611a6f57611a6f61211e565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff81118282101715612221576122216121e7565b60405290565b80516bffffffffffffffffffffffff8116811461224357600080fd5b919050565b805161224381611ec7565b805163ffffffff8116811461224357600080fd5b80516006811061224357600080fd5b600082601f83011261228757600080fd5b8151602067ffffffffffffffff808311156122a4576122a46121e7565b8260051b604051601f19603f830116810181811084821117156122c9576122c96121e7565b6040529384528581018301938381019250878511156122e757600080fd5b83870191505b8482101561209c576122fe82612253565b835291830191908301906122ed565b60006020828403121561231f57600080fd5b815167ffffffffffffffff8082111561233757600080fd5b90830190610100828603121561234c57600080fd5b6123546121fd565b61235d83612227565b815261236b60208401612248565b60208201526040830151604082015261238660608401612253565b606082015261239760808401612253565b60808201526123a860a08401612253565b60a08201526123b960c08401612267565b60c082015260e0830151828111156123d057600080fd5b6123dc87828601612276565b60e08301525095945050505050565b634e487b7160e01b600052602160045260246000fd5b6000806040838503121561241457600080fd5b825161241f81611ec7565b915061242d60208401612227565b90509250929050565b60006020828403121561244857600080fd5b505191905056fea26469706673582212206315f6e913afeb61c8916fe48916c726450ecb2def96b059cbfa3cef56ffb32e64736f6c63430008150033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063879d909011610104578063cd25fe38116100a2578063eb338c9611610071578063eb338c9614610584578063f189e85a14610597578063f4dce714146105ac578063ffa1ad74146105b457600080fd5b8063cd25fe38146104da578063e1f1176d1461050f578063e77cdcc914610536578063eacdaabc1461055d57600080fd5b8063b69ef8a8116100de578063b69ef8a81461047d578063b6b55f2514610486578063c2c4c5c114610499578063cbcf252a146104b357600080fd5b8063879d9090146103f2578063a694fc3a146103fb578063a74466ad1461040e57600080fd5b806356e760581161017157806372f702f31161014b57806372f702f31461036a57806375af4b6d1461039157806378e06136146103b8578063809cee2f146103cb57600080fd5b806356e76058146103095780635829c5ec1461031c578063592cf3fb1461034357600080fd5b80632e17de78116101ad5780632e17de781461029d5780633e732997146102b257806342cde4e8146102bb57806352c824f5146102e257600080fd5b8063150b7a02146101d457806316a7517214610229578063287140511461025e575b600080fd5b6101f36101e2366004611edc565b630a85bd0160e11b95945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6102507f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610220565b6102857f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610220565b6102b06102ab366004611f7b565b6105e5565b005b61025060025481565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b610250610317366004611f7b565b6108c8565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b6102857f000000000000000000000000000000000000000000000000000000000000000081565b6102857f000000000000000000000000000000000000000000000000000000000000000081565b6102506103c6366004611f7b565b6108e9565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b61025060015481565b6102b0610409366004611f7b565b610a88565b61045261041c366004611f7b565b600460208190526000918252604090912080546001820154600383015492909301546001600160a01b0391821693909116919084565b604080516001600160a01b039586168152949093166020850152918301526060820152608001610220565b61025060005481565b6102b0610494366004611f7b565b61102f565b6104a16110d1565b60405161022096959493929190611fcf565b6102857f000000000000000000000000000000000000000000000000000000000000000081565b6104ff6104e8366004611f7b565b600090815260046020526040902060030154151590565b6040519015158152602001610220565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b6102507f000000000000000000000000000000000000000000000000000000000000000081565b610250610592366004611f7b565b6113d0565b61059f6113e0565b60405161022091906120a7565b610250611486565b6105d8604051806040016040528060058152602001640302e312e360dc1b81525081565b60405161022091906120ba565b600081815260046020526040902060018101546001600160a01b0316331461063c57600181015460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044015b60405180910390fd5b6000806106476110d1565b95505050505091508061065f5761065c6113e0565b91505b60005b825181101561069c578483828151811061067e5761067e612108565b6020026020010151031561069c5761069581612134565b9050610662565b600484015460028501805460408051602080840282018101909252828152600093909290918301828280156106f057602002820191906000526020600020905b8154815260200190600101908083116106dc575b5050506003890154895460008c8152600460205260408120805473ffffffffffffffffffffffffffffffffffffffff199081168255600182018054909116905595965091946001600160a01b03909116935091506107516002830182611e46565b50600060038201819055600490910155600580546107719060019061214d565b8154811061078157610781612108565b90600052602060002001546005868154811061079f5761079f612108565b60009182526020909120015560058054806107bc576107bc612160565b600082815260208120820160001990810191909155019055604051632142170760e11b8152306004820152336024820152604481018a90526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b15801561084257600080fd5b505af1158015610856573d6000803e3d6000fd5b50505050600084111561086d5761086d81856114bb565b806001600160a01b0316336001600160a01b03168a7f246ee6115bfd84e00097b16569c2ff2f822026bb9595a82cd2c1e69d4b6ea50c8688876040516108b593929190612176565b60405180910390a4505050505050505050565b600381815481106108d857600080fd5b600091825260209091200154905081565b6000818152600460209081526040808320815160a08101835281546001600160a01b039081168252600183015416818501526002820180548451818702810187018652818152879693958601939092919083018282801561096957602002820191906000526020600020905b815481526020019060010190808311610955575b505050505081526020016003820154815260200160048201548152505090508060800151915080606001516000036109b75760405163e0606b6360e01b815260048101849052602401610633565b60008060008060006109c7611544565b50509450945094509450945060005b84811015610a7c57888382815181106109f1576109f1612108565b602002602001015103610a6c5785841115610a47578386838381518110610a1a57610a1a612108565b6020026020010151610a2c919061219b565b610a3691906121b2565b610a4090896121d4565b9750610a7c565b818181518110610a5957610a59612108565b602002602001015188610a4091906121d4565b610a7581612134565b90506109d6565b50505050505050919050565b600154600003610aab5760405163afb0be3360e01b815260040160405180910390fd5b6005547f00000000000000000000000000000000000000000000000000000000000000008103610b105760405163fd20861560e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820152602401610633565b60405163ef0e239b60e01b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ef0e239b90602401600060405180830381865afa158015610b78573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ba0919081019061230d565b9050806080015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014610bef57604051637ad404bf60e11b815260048101849052602401610633565b7f000000000000000000000000000000000000000000000000000000000000000015801590610c42575080604001517f000000000000000000000000000000000000000000000000000000000000000014155b15610c6357604051637ad404bf60e11b815260048101849052602401610633565b60007f0000000000000000000000000000000000000000000000000000000000000000118015610cbd5750806060015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014155b15610cde57604051637ad404bf60e11b815260048101849052602401610633565b60048160c001516005811115610cf657610cf66123eb565b14610d35578060c001516005811115610d1157610d116123eb565b604051633c053f9d60e21b8152600481019190915260248101849052604401610633565b600081602001516001600160a01b0316803b806020016040519081016040528181526000908060200190933c805190602001209050807f000000000000000000000000000000000000000000000000000000000000000014610dba57602082015160405162a2307960e51b81526001600160a01b039091166004820152602401610633565b6003548015610e8b5760e083015151818114610dec57604051637ad404bf60e11b815260048101879052602401610633565b60005b81811015610e88578460e001518181518110610e0d57610e0d612108565b602002602001015163ffffffff1660038281548110610e2e57610e2e612108565b906000526020600020015414610e785760038181548110610e5157610e51612108565b9060005260206000200154604051632ab10b0b60e21b815260040161063391815260200190565b610e8181612134565b9050610def565b50505b610ea78584600001516bffffffffffffffffffffffff166118c3565b600085815260046020908152604082209085015181546001600160a01b03821673ffffffffffffffffffffffffffffffffffffffff1991821617835560018301805490911633179055909190610efc90611a64565b8051909150610f149060028401906020840190611e67565b50426003830155600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001879055604051632142170760e11b8152336004820152306024820152604481018890527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342842e0e90606401600060405180830381600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b5050505084602001516001600160a01b0316336001600160a01b0316887f5d43ac9b1b213902df90d405b0006308578486b6c62182c5df202ed572c844e48460405161101e91906120a7565b60405180910390a450505050505050565b60008160005461103f91906121d4565b905060008260015461105191906121d4565b6000839055600181905590506110897f0000000000000000000000000000000000000000000000000000000000000000333086611a75565b604080518481526020810184905290810182905233907f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e9060600160405180910390a2505050565b60608060006060806000806000806000806000806110ed611544565b965096509650965096509650965060008611156112f1576000878611156112605760008060015b898110156111b257888b88838151811061113057611130612108565b6020026020010151611142919061219b565b61114c91906121b2565b925061115883836121d4565b915087818151811061116c5761116c612108565b602002602001015193508260046000868152602001908152602001600020600401600082825461119c91906121d4565b909155506111ab905081612134565b9050611114565b50878a876000815181106111c8576111c8612108565b60200260200101516111da919061219b565b6111e491906121b2565b91506111f082826121d4565b90508660008151811061120557611205612108565b60200260200101519250808a111561122e57611221818b61214d565b61122b90836121d4565b91505b6000838152600460208190526040822001805484929061124f9084906121d4565b9091555060009a506112ea92505050565b60005b878110156112dc5785818151811061127d5761127d612108565b6020026020010151915084818151811061129957611299612108565b60200260200101516004600084815260200190815260200160002060040160008282546112c691906121d4565b909155506112d5905081612134565b9050611263565b506112e7868961214d565b97505b5060018790555b8051156113bb5760005b825181101561137857600083828151811061131857611318612108565b6020026020010151905082828151811061133457611334612108565b6020026020010151600460008381526020019081526020016000206002019080519060200190611365929190611e67565b50508061137190612134565b90506112fb565b50426002556040805188815260208101889052600199507f21d81d5d656869e8ce3ba8d65526a2f0dbbcd3d36f5f9999eb7c84360e45eced910160405180910390a15b909c909b509399509097509550929350915050565b600581815481106108d857600080fd5b6005546060908067ffffffffffffffff8111156113ff576113ff6121e7565b604051908082528060200260200182016040528015611428578160200160208202803683370190505b50915060005b81811015611481576005818154811061144957611449612108565b906000526020600020015483828151811061146657611466612108565b602090810291909101015261147a81612134565b905061142e565b505090565b60007f00000000000000000000000000000000000000000000000000000000000000006002546114b691906121d4565b905090565b806000808282546114cc919061214d565b909155506114fd90507f00000000000000000000000000000000000000000000000000000000000000008383611aff565b816001600160a01b03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648260405161153891815260200190565b60405180910390a25050565b6002546001549060009081906060908190819081907f0000000000000000000000000000000000000000000000000000000000000000611584824261214d565b101580156115925750600088115b156118b9576005548067ffffffffffffffff8111156115b3576115b36121e7565b6040519080825280602002602001820160405280156115dc578160200160208202803683370190505b5093508067ffffffffffffffff8111156115f8576115f86121e7565b604051908082528060200260200182016040528015611621578160200160208202803683370190505b5095508067ffffffffffffffff81111561163d5761163d6121e7565b604051908082528060200260200182016040528015611666578160200160208202803683370190505b5094508067ffffffffffffffff811115611682576116826121e7565b6040519080825280602002602001820160405280156116b557816020015b60608152602001906001900390816116a05790505b50925060005b818110156118b657600581815481106116d6576116d6612108565b90600052602060002001548582815181106116f3576116f3612108565b60200260200101818152505060006004600087848151811061171757611717612108565b60209081029190910181015182528101919091526040016000208054909150611748906001600160a01b0316611a64565b85838151811061175a5761175a612108565b60209081029190910101526003810154849081811115611778578091505b611782824261214d565b905060006117fc88868151811061179b5761179b612108565b6020026020010151856002018054806020026020016040519081016040528092919081815260200182805480156117f157602002820191906000526020600020905b8154815260200190600101908083116117dd575b505050505084611b7c565b905080156118a1576000611830837f000000000000000000000000000000000000000000000000000000000000000061219b565b905061183c818e6121d4565b9c50808b8f8151811061185157611851612108565b60200260200101818152505089868151811061186f5761186f612108565b60200260200101518c8f8151811061188957611889612108565b602090810291909101015261189d8e612134565b9d50505b50505050806118af90612134565b90506116bb565b50505b5090919293949596565b604051633cebfa4f60e01b81526004810183905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633cebfa4f906024016040805180830381865afa15801561192c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119509190612401565b91509150816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146119d957604051630b80380d60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015283166024820152604401610633565b7f0000000000000000000000000000000000000000000000000000000000000000816bffffffffffffffffffffffff161015611a5e57604051632b30b24760e21b81526bffffffffffffffffffffffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610633565b50505050565b6060611a6f82611b91565b92915050565b60006040516323b872dd60e01b6000528460045283602452826044526020600060646000808a5af13d15601f3d1160016000511416171691506000606052806040525080611af85760405163abae3d6d60e01b81526001600160a01b03808716600483015280861660248301528416604482015260648101839052608401610633565b5050505050565b600060405163a9059cbb60e01b6000528360045282602452602060006044600080895af13d15601f3d1160016000511416171691506000606052806040525080611a5e5760405163abae3d6d60e01b81526001600160a01b0380861660048301523060248301528416604482015260648101839052608401610633565b6000611b89848484611cdf565b949350505050565b6040805160028082526060808301845292602083019080368337019050509050816001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c139190612436565b81600081518110611c2657611c26612108565b6020908102919091010152604051637af7347360e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690637af7347390602401602060405180830381865afa158015611c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbb9190612436565b81600181518110611cce57611cce612108565b602002602001018181525050919050565b60008082118015611d23575082600081518110611cfe57611cfe612108565b602002602001015184600081518110611d1957611d19612108565b6020026020010151115b8015611d62575082600181518110611d3d57611d3d612108565b602002602001015184600181518110611d5857611d58612108565b6020026020010151115b15611e3f57600083600081518110611d7c57611d7c612108565b602002602001015185600081518110611d9757611d97612108565b6020026020010151611da9919061214d565b9050600084600181518110611dc057611dc0612108565b602002602001015186600181518110611ddb57611ddb612108565b6020026020010151611ded919061214d565b9050818111611e3c57600084611e0b83670de0b6b3a764000061219b565b611e1591906121b2565b7f000000000000000000000000000000000000000000000000000000000000000011159350505b50505b9392505050565b5080546000825590600052602060002090810190611e649190611eb2565b50565b828054828255906000526020600020908101928215611ea2579160200282015b82811115611ea2578251825591602001919060010190611e87565b50611eae929150611eb2565b5090565b5b80821115611eae5760008155600101611eb3565b6001600160a01b0381168114611e6457600080fd5b600080600080600060808688031215611ef457600080fd5b8535611eff81611ec7565b94506020860135611f0f81611ec7565b935060408601359250606086013567ffffffffffffffff80821115611f3357600080fd5b818801915088601f830112611f4757600080fd5b813581811115611f5657600080fd5b896020828501011115611f6857600080fd5b9699959850939650602001949392505050565b600060208284031215611f8d57600080fd5b5035919050565b600081518084526020808501945080840160005b83811015611fc457815187529582019590820190600101611fa8565b509495945050505050565b60c081526000611fe260c0830189611f94565b6020838203818501528189518084528284019150828160051b850101838c016000805b8481101561205857878403601f19018652825180518086529088019088860190845b818110156120435783518352928a0192918a0191600101612027565b50509688019694505091860191600101612005565b5050508a60408801528681036060880152612073818b611f94565b945050505050828103608084015261208b8186611f94565b91505061209c60a083018415159052565b979650505050505050565b602081526000611e3f6020830184611f94565b600060208083528351808285015260005b818110156120e7578581018301518582016040015282016120cb565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121465761214661211e565b5060010190565b81810381811115611a6f57611a6f61211e565b634e487b7160e01b600052603160045260246000fd5b6060815260006121896060830186611f94565b60208301949094525060400152919050565b8082028115828204841417611a6f57611a6f61211e565b6000826121cf57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115611a6f57611a6f61211e565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff81118282101715612221576122216121e7565b60405290565b80516bffffffffffffffffffffffff8116811461224357600080fd5b919050565b805161224381611ec7565b805163ffffffff8116811461224357600080fd5b80516006811061224357600080fd5b600082601f83011261228757600080fd5b8151602067ffffffffffffffff808311156122a4576122a46121e7565b8260051b604051601f19603f830116810181811084821117156122c9576122c96121e7565b6040529384528581018301938381019250878511156122e757600080fd5b83870191505b8482101561209c576122fe82612253565b835291830191908301906122ed565b60006020828403121561231f57600080fd5b815167ffffffffffffffff8082111561233757600080fd5b90830190610100828603121561234c57600080fd5b6123546121fd565b61235d83612227565b815261236b60208401612248565b60208201526040830151604082015261238660608401612253565b606082015261239760808401612253565b60808201526123a860a08401612253565b60a08201526123b960c08401612267565b60c082015260e0830151828111156123d057600080fd5b6123dc87828601612276565b60e08301525095945050505050565b634e487b7160e01b600052602160045260246000fd5b6000806040838503121561241457600080fd5b825161241f81611ec7565b915061242d60208401612227565b90509250929050565b60006020828403121561244857600080fd5b505191905056fea26469706673582212206315f6e913afeb61c8916fe48916c726450ecb2def96b059cbfa3cef56ffb32e64736f6c63430008150033", + "bytecode": "0x6102206040523480156200001257600080fd5b5060405162002c7638038062002c768339810160408190526200003591620003f8565b8086868686868484828260000151600014806200005457506020830151155b806200006257506060830151155b806200007057506080830151155b806200007e575060a0830151155b156200009d57604051637c946ed760e01b815260040160405180910390fd5b600283604001511015620000d957604080840151905163491a2bb160e01b81526004810191909152600260248201526044015b60405180910390fd5b6001600160a01b038216620001015760405163d92e233d60e01b815260040160405180910390fd5b82516080908152602084015160a0908152604085015160c052606085015160e09081529185015161010090815290850151610120526001600160a01b038416610180529084015161014052830151610160526000805b8460c00151518110156200023957818560c0015182815181106200017f576200017f62000513565b602002602001015111620001cb578460c001518181518110620001a657620001a662000513565b6020026020010151604051632ab10b0b60e21b8152600401620000d091815260200190565b8460c001518181518110620001e457620001e462000513565b6020908102919091010151600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b018190559150620002318162000529565b905062000157565b50816200025957604051637c946ed760e01b815260040160405180910390fd5b506101a0525050426002556001600160a01b03821615806200028257506001600160a01b038316155b15620002a15760405163d92e233d60e01b815260040160405180910390fd5b506001600160a01b039081166101e0529081166101c05283169150620002db90505760405162ca95f960e81b815260040160405180910390fd5b6001600160a01b0316610200525062000551945050505050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715620003315762000331620002f5565b60405290565b600082601f8301126200034957600080fd5b815160206001600160401b0380831115620003685762000368620002f5565b8260051b604051601f19603f83011681018181108482111715620003905762000390620002f5565b604052938452858101830193838101925087851115620003af57600080fd5b83870191505b84821015620003d057815183529183019190830190620003b5565b979650505050505050565b80516001600160a01b0381168114620003f357600080fd5b919050565b60008060008060008060c087890312156200041257600080fd5b86516001600160401b03808211156200042a57600080fd5b90880190610120828b0312156200044057600080fd5b6200044a6200030b565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c0830151828111156200049357600080fd5b620004a18c82860162000337565b60c08301525060e083810151908201526101009283015192810192909252509550620004d060208801620003db565b9450620004e060408801620003db565b9350620004f060608801620003db565b9250608087015191506200050760a08801620003db565b90509295509295509295565b634e487b7160e01b600052603260045260246000fd5b6000600182016200054a57634e487b7160e01b600052601160045260246000fd5b5060010190565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051610200516125e76200068f600039600081816103ac0152611d7c015260008181610385015281816111de0152818161160301528181611a8c0152611ad00152600081816102790152611a120152600081816103e60152610e910152600081816105030152818161083c01528181610c4d015261109601526000818161055f01528181610d150152610d440152600081816102d601528181610d8b0152610dbf0152600081816103370152610cd301526000818161035e0152611f430152600081816102fd015281816115b6015261168701526000818161058601528181611b070152611b5e0152600081816105ad015261193801526000818161024401528181610bd40152610c0801526125e76000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063879d90901161010f578063cd25fe38116100a2578063eb338c9611610071578063eb338c96146105cf578063f189e85a146105e2578063f4dce714146105ea578063ffa1ad74146105f257600080fd5b8063cd25fe3814610525578063e1f1176d1461055a578063e77cdcc914610581578063eacdaabc146105a857600080fd5b8063b69ef8a8116100de578063b69ef8a8146104c8578063b6b55f25146104d1578063c2c4c5c1146104e4578063cbcf252a146104fe57600080fd5b8063879d909014610428578063a694fc3a14610431578063a74466ad14610444578063b1508760146104b357600080fd5b806356e760581161018757806375af4b6d1161015657806375af4b6d146103a757806378e06136146103ce578063809cee2f146103e157806382a8ea581461040857600080fd5b806356e760581461031f5780635829c5ec14610332578063592cf3fb1461035957806372f702f31461038057600080fd5b80632e17de78116101c35780632e17de78146102b35780633e732997146102c857806342cde4e8146102d157806352c824f5146102f857600080fd5b8063150b7a02146101ea57806316a751721461023f5780632871405114610274575b600080fd5b6102096101f8366004612008565b630a85bd0160e11b95945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6102667f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610236565b61029b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610236565b6102c66102c13660046120a7565b610623565b005b61026660025481565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b61026661032d3660046120a7565b610906565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b61029b7f000000000000000000000000000000000000000000000000000000000000000081565b61029b7f000000000000000000000000000000000000000000000000000000000000000081565b6102666103dc3660046120a7565b610927565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b61041b6104163660046120a7565b610ac6565b60405161023691906120fb565b61026660015481565b6102c661043f3660046120a7565b610bac565b6104886104523660046120a7565b600460208190526000918252604090912080546001820154600383015492909301546001600160a01b0391821693909116919084565b604080516001600160a01b039586168152949093166020850152918301526060820152608001610236565b6104bb611153565b6040516102369190612158565b61026660005481565b6102c66104df3660046120a7565b6111ab565b6104ec61124d565b6040516102369695949392919061216b565b61029b7f000000000000000000000000000000000000000000000000000000000000000081565b61054a6105333660046120a7565b600090815260046020526040902060030154151590565b6040519015158152602001610236565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6102666105dd3660046120a7565b61154c565b6104bb61155c565b6102666115b2565b610616604051806040016040528060058152602001640302e312e360dc1b81525081565b604051610236919061221c565b600081815260046020526040902060018101546001600160a01b0316331461067a57600181015460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044015b60405180910390fd5b60008061068561124d565b95505050505091508061069d5761069a61155c565b91505b60005b82518110156106da57848382815181106106bc576106bc61226a565b602002602001015103156106da576106d381612296565b90506106a0565b6004840154600285018054604080516020808402820181019092528281526000939092909183018282801561072e57602002820191906000526020600020905b81548152602001906001019080831161071a575b5050506003890154895460008c8152600460205260408120805473ffffffffffffffffffffffffffffffffffffffff199081168255600182018054909116905595965091946001600160a01b039091169350915061078f6002830182611f72565b50600060038201819055600490910155600580546107af906001906122af565b815481106107bf576107bf61226a565b9060005260206000200154600586815481106107dd576107dd61226a565b60009182526020909120015560058054806107fa576107fa6122c2565b600082815260208120820160001990810191909155019055604051632142170760e11b8152306004820152336024820152604481018a90526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b15801561088057600080fd5b505af1158015610894573d6000803e3d6000fd5b5050505060008411156108ab576108ab81856115e7565b806001600160a01b0316336001600160a01b03168a7f246ee6115bfd84e00097b16569c2ff2f822026bb9595a82cd2c1e69d4b6ea50c8688876040516108f3939291906122d8565b60405180910390a4505050505050505050565b6003818154811061091657600080fd5b600091825260209091200154905081565b6000818152600460209081526040808320815160a08101835281546001600160a01b03908116825260018301541681850152600282018054845181870281018701865281815287969395860193909291908301828280156109a757602002820191906000526020600020905b815481526020019060010190808311610993575b505050505081526020016003820154815260200160048201548152505090508060800151915080606001516000036109f55760405163e0606b6360e01b815260048101849052602401610671565b6000806000806000610a05611670565b50509450945094509450945060005b84811015610aba5788838281518110610a2f57610a2f61226a565b602002602001015103610aaa5785841115610a85578386838381518110610a5857610a5861226a565b6020026020010151610a6a91906122fd565b610a749190612314565b610a7e9089612336565b9750610aba565b818181518110610a9757610a9761226a565b602002602001015188610a7e9190612336565b610ab381612296565b9050610a14565b50505050505050919050565b610b0a6040518060a0016040528060006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081525090565b600082815260046020908152604091829020825160a08101845281546001600160a01b0390811682526001830154168184015260028201805485518186028101860187528181529295939493860193830182828015610b8857602002820191906000526020600020905b815481526020019060010190808311610b74575b50505050508152602001600382015481526020016004820154815250509050919050565b600154600003610bcf5760405163afb0be3360e01b815260040160405180910390fd5b6005547f00000000000000000000000000000000000000000000000000000000000000008103610c345760405163fd20861560e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820152602401610671565b60405163ef0e239b60e01b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ef0e239b90602401600060405180830381865afa158015610c9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cc4919081019061246f565b9050806080015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014610d1357604051637ad404bf60e11b815260048101849052602401610671565b7f000000000000000000000000000000000000000000000000000000000000000015801590610d66575080604001517f000000000000000000000000000000000000000000000000000000000000000014155b15610d8757604051637ad404bf60e11b815260048101849052602401610671565b60007f0000000000000000000000000000000000000000000000000000000000000000118015610de15750806060015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014155b15610e0257604051637ad404bf60e11b815260048101849052602401610671565b60048160c001516005811115610e1a57610e1a61254d565b14610e59578060c001516005811115610e3557610e3561254d565b604051633c053f9d60e21b8152600481019190915260248101849052604401610671565b600081602001516001600160a01b0316803b806020016040519081016040528181526000908060200190933c805190602001209050807f000000000000000000000000000000000000000000000000000000000000000014610ede57602082015160405162a2307960e51b81526001600160a01b039091166004820152602401610671565b6003548015610faf5760e083015151818114610f1057604051637ad404bf60e11b815260048101879052602401610671565b60005b81811015610fac578460e001518181518110610f3157610f3161226a565b602002602001015163ffffffff1660038281548110610f5257610f5261226a565b906000526020600020015414610f9c5760038181548110610f7557610f7561226a565b9060005260206000200154604051632ab10b0b60e21b815260040161067191815260200190565b610fa581612296565b9050610f13565b50505b610fcb8584600001516bffffffffffffffffffffffff166119ef565b600085815260046020908152604082209085015181546001600160a01b03821673ffffffffffffffffffffffffffffffffffffffff199182161783556001830180549091163317905590919061102090611b90565b80519091506110389060028401906020840190611f93565b50426003830155600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001879055604051632142170760e11b8152336004820152306024820152604481018890527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342842e0e90606401600060405180830381600087803b1580156110e257600080fd5b505af11580156110f6573d6000803e3d6000fd5b5050505084602001516001600160a01b0316336001600160a01b0316887f5d43ac9b1b213902df90d405b0006308578486b6c62182c5df202ed572c844e4846040516111429190612158565b60405180910390a450505050505050565b606060038054806020026020016040519081016040528092919081815260200182805480156111a157602002820191906000526020600020905b81548152602001906001019080831161118d575b5050505050905090565b6000816000546111bb9190612336565b90506000826001546111cd9190612336565b6000839055600181905590506112057f0000000000000000000000000000000000000000000000000000000000000000333086611ba1565b604080518481526020810184905290810182905233907f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e9060600160405180910390a2505050565b6060806000606080600080600080600080600080611269611670565b9650965096509650965096509650600086111561146d576000878611156113dc5760008060015b8981101561132e57888b8883815181106112ac576112ac61226a565b60200260200101516112be91906122fd565b6112c89190612314565b92506112d48383612336565b91508781815181106112e8576112e861226a565b60200260200101519350826004600086815260200190815260200160002060040160008282546113189190612336565b90915550611327905081612296565b9050611290565b50878a876000815181106113445761134461226a565b602002602001015161135691906122fd565b6113609190612314565b915061136c8282612336565b9050866000815181106113815761138161226a565b60200260200101519250808a11156113aa5761139d818b6122af565b6113a79083612336565b91505b600083815260046020819052604082200180548492906113cb908490612336565b9091555060009a5061146692505050565b60005b87811015611458578581815181106113f9576113f961226a565b602002602001015191508481815181106114155761141561226a565b60200260200101516004600084815260200190815260200160002060040160008282546114429190612336565b90915550611451905081612296565b90506113df565b5061146386896122af565b97505b5060018790555b8051156115375760005b82518110156114f45760008382815181106114945761149461226a565b602002602001015190508282815181106114b0576114b061226a565b60200260200101516004600083815260200190815260200160002060020190805190602001906114e1929190611f93565b5050806114ed90612296565b9050611477565b50426002556040805188815260208101889052600199507f21d81d5d656869e8ce3ba8d65526a2f0dbbcd3d36f5f9999eb7c84360e45eced910160405180910390a15b909c909b509399509097509550929350915050565b6005818154811061091657600080fd5b606060058054806020026020016040519081016040528092919081815260200182805480156111a1576020028201919060005260206000209081548152602001906001019080831161118d575050505050905090565b60007f00000000000000000000000000000000000000000000000000000000000000006002546115e29190612336565b905090565b806000808282546115f891906122af565b9091555061162990507f00000000000000000000000000000000000000000000000000000000000000008383611c2b565b816001600160a01b03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648260405161166491815260200190565b60405180910390a25050565b6002546001549060009081906060908190819081907f00000000000000000000000000000000000000000000000000000000000000006116b082426122af565b101580156116be5750600088115b156119e5576005548067ffffffffffffffff8111156116df576116df612349565b604051908082528060200260200182016040528015611708578160200160208202803683370190505b5093508067ffffffffffffffff81111561172457611724612349565b60405190808252806020026020018201604052801561174d578160200160208202803683370190505b5095508067ffffffffffffffff81111561176957611769612349565b604051908082528060200260200182016040528015611792578160200160208202803683370190505b5094508067ffffffffffffffff8111156117ae576117ae612349565b6040519080825280602002602001820160405280156117e157816020015b60608152602001906001900390816117cc5790505b50925060005b818110156119e257600581815481106118025761180261226a565b906000526020600020015485828151811061181f5761181f61226a565b6020026020010181815250506000600460008784815181106118435761184361226a565b60209081029190910181015182528101919091526040016000208054909150611874906001600160a01b0316611b90565b8583815181106118865761188661226a565b602090810291909101015260038101548490818111156118a4578091505b6118ae82426122af565b905060006119288886815181106118c7576118c761226a565b60200260200101518560020180548060200260200160405190810160405280929190818152602001828054801561191d57602002820191906000526020600020905b815481526020019060010190808311611909575b505050505084611ca8565b905080156119cd57600061195c837f00000000000000000000000000000000000000000000000000000000000000006122fd565b9050611968818e612336565b9c50808b8f8151811061197d5761197d61226a565b60200260200101818152505089868151811061199b5761199b61226a565b60200260200101518c8f815181106119b5576119b561226a565b60209081029190910101526119c98e612296565b9d50505b50505050806119db90612296565b90506117e7565b50505b5090919293949596565b604051633cebfa4f60e01b81526004810183905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633cebfa4f906024016040805180830381865afa158015611a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7c9190612563565b91509150816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614611b0557604051630b80380d60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015283166024820152604401610671565b7f0000000000000000000000000000000000000000000000000000000000000000816bffffffffffffffffffffffff161015611b8a57604051632b30b24760e21b81526bffffffffffffffffffffffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610671565b50505050565b6060611b9b82611cbd565b92915050565b60006040516323b872dd60e01b6000528460045283602452826044526020600060646000808a5af13d15601f3d1160016000511416171691506000606052806040525080611c245760405163abae3d6d60e01b81526001600160a01b03808716600483015280861660248301528416604482015260648101839052608401610671565b5050505050565b600060405163a9059cbb60e01b6000528360045282602452602060006044600080895af13d15601f3d1160016000511416171691506000606052806040525080611b8a5760405163abae3d6d60e01b81526001600160a01b0380861660048301523060248301528416604482015260648101839052608401610671565b6000611cb5848484611e0b565b949350505050565b6040805160028082526060808301845292602083019080368337019050509050816001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3f9190612598565b81600081518110611d5257611d5261226a565b6020908102919091010152604051637af7347360e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690637af7347390602401602060405180830381865afa158015611dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de79190612598565b81600181518110611dfa57611dfa61226a565b602002602001018181525050919050565b60008082118015611e4f575082600081518110611e2a57611e2a61226a565b602002602001015184600081518110611e4557611e4561226a565b6020026020010151115b8015611e8e575082600181518110611e6957611e6961226a565b602002602001015184600181518110611e8457611e8461226a565b6020026020010151115b15611f6b57600083600081518110611ea857611ea861226a565b602002602001015185600081518110611ec357611ec361226a565b6020026020010151611ed591906122af565b9050600084600181518110611eec57611eec61226a565b602002602001015186600181518110611f0757611f0761226a565b6020026020010151611f1991906122af565b9050818111611f6857600084611f3783670de0b6b3a76400006122fd565b611f419190612314565b7f000000000000000000000000000000000000000000000000000000000000000011159350505b50505b9392505050565b5080546000825590600052602060002090810190611f909190611fde565b50565b828054828255906000526020600020908101928215611fce579160200282015b82811115611fce578251825591602001919060010190611fb3565b50611fda929150611fde565b5090565b5b80821115611fda5760008155600101611fdf565b6001600160a01b0381168114611f9057600080fd5b60008060008060006080868803121561202057600080fd5b853561202b81611ff3565b9450602086013561203b81611ff3565b935060408601359250606086013567ffffffffffffffff8082111561205f57600080fd5b818801915088601f83011261207357600080fd5b81358181111561208257600080fd5b89602082850101111561209457600080fd5b9699959850939650602001949392505050565b6000602082840312156120b957600080fd5b5035919050565b600081518084526020808501945080840160005b838110156120f0578151875295820195908201906001016120d4565b509495945050505050565b6020815260006001600160a01b0380845116602084015280602085015116604084015250604083015160a0606084015261213860c08401826120c0565b905060608401516080840152608084015160a08401528091505092915050565b602081526000611f6b60208301846120c0565b60c08152600061217e60c08301896120c0565b6020838203818501528189518084528284019150828160051b850101838c0160005b838110156121ce57601f198784030185526121bc8383516120c0565b948601949250908501906001016121a0565b50508a604088015286810360608801526121e8818b6120c0565b945050505050828103608084015261220081866120c0565b91505061221160a083018415159052565b979650505050505050565b600060208083528351808285015260005b818110156122495785810183015185820160400152820161222d565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016122a8576122a8612280565b5060010190565b81810381811115611b9b57611b9b612280565b634e487b7160e01b600052603160045260246000fd5b6060815260006122eb60608301866120c0565b60208301949094525060400152919050565b8082028115828204841417611b9b57611b9b612280565b60008261233157634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115611b9b57611b9b612280565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff8111828210171561238357612383612349565b60405290565b80516bffffffffffffffffffffffff811681146123a557600080fd5b919050565b80516123a581611ff3565b805163ffffffff811681146123a557600080fd5b8051600681106123a557600080fd5b600082601f8301126123e957600080fd5b8151602067ffffffffffffffff8083111561240657612406612349565b8260051b604051601f19603f8301168101818110848211171561242b5761242b612349565b60405293845285810183019383810192508785111561244957600080fd5b83870191505b8482101561221157612460826123b5565b8352918301919083019061244f565b60006020828403121561248157600080fd5b815167ffffffffffffffff8082111561249957600080fd5b9083019061010082860312156124ae57600080fd5b6124b661235f565b6124bf83612389565b81526124cd602084016123aa565b6020820152604083015160408201526124e8606084016123b5565b60608201526124f9608084016123b5565b608082015261250a60a084016123b5565b60a082015261251b60c084016123c9565b60c082015260e08301518281111561253257600080fd5b61253e878286016123d8565b60e08301525095945050505050565b634e487b7160e01b600052602160045260246000fd5b6000806040838503121561257657600080fd5b825161258181611ff3565b915061258f60208401612389565b90509250929050565b6000602082840312156125aa57600080fd5b505191905056fea26469706673582212203a642760d34faf6f4735553cf1254f450da8c520b28b804a01756e29698d486064736f6c63430008150033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101e55760003560e01c8063879d90901161010f578063cd25fe38116100a2578063eb338c9611610071578063eb338c96146105cf578063f189e85a146105e2578063f4dce714146105ea578063ffa1ad74146105f257600080fd5b8063cd25fe3814610525578063e1f1176d1461055a578063e77cdcc914610581578063eacdaabc146105a857600080fd5b8063b69ef8a8116100de578063b69ef8a8146104c8578063b6b55f25146104d1578063c2c4c5c1146104e4578063cbcf252a146104fe57600080fd5b8063879d909014610428578063a694fc3a14610431578063a74466ad14610444578063b1508760146104b357600080fd5b806356e760581161018757806375af4b6d1161015657806375af4b6d146103a757806378e06136146103ce578063809cee2f146103e157806382a8ea581461040857600080fd5b806356e760581461031f5780635829c5ec14610332578063592cf3fb1461035957806372f702f31461038057600080fd5b80632e17de78116101c35780632e17de78146102b35780633e732997146102c857806342cde4e8146102d157806352c824f5146102f857600080fd5b8063150b7a02146101ea57806316a751721461023f5780632871405114610274575b600080fd5b6102096101f8366004612008565b630a85bd0160e11b95945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6102667f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610236565b61029b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610236565b6102c66102c13660046120a7565b610623565b005b61026660025481565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b61026661032d3660046120a7565b610906565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b61029b7f000000000000000000000000000000000000000000000000000000000000000081565b61029b7f000000000000000000000000000000000000000000000000000000000000000081565b6102666103dc3660046120a7565b610927565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b61041b6104163660046120a7565b610ac6565b60405161023691906120fb565b61026660015481565b6102c661043f3660046120a7565b610bac565b6104886104523660046120a7565b600460208190526000918252604090912080546001820154600383015492909301546001600160a01b0391821693909116919084565b604080516001600160a01b039586168152949093166020850152918301526060820152608001610236565b6104bb611153565b6040516102369190612158565b61026660005481565b6102c66104df3660046120a7565b6111ab565b6104ec61124d565b6040516102369695949392919061216b565b61029b7f000000000000000000000000000000000000000000000000000000000000000081565b61054a6105333660046120a7565b600090815260046020526040902060030154151590565b6040519015158152602001610236565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6102667f000000000000000000000000000000000000000000000000000000000000000081565b6102666105dd3660046120a7565b61154c565b6104bb61155c565b6102666115b2565b610616604051806040016040528060058152602001640302e312e360dc1b81525081565b604051610236919061221c565b600081815260046020526040902060018101546001600160a01b0316331461067a57600181015460405163521eb56d60e11b81523360048201526001600160a01b0390911660248201526044015b60405180910390fd5b60008061068561124d565b95505050505091508061069d5761069a61155c565b91505b60005b82518110156106da57848382815181106106bc576106bc61226a565b602002602001015103156106da576106d381612296565b90506106a0565b6004840154600285018054604080516020808402820181019092528281526000939092909183018282801561072e57602002820191906000526020600020905b81548152602001906001019080831161071a575b5050506003890154895460008c8152600460205260408120805473ffffffffffffffffffffffffffffffffffffffff199081168255600182018054909116905595965091946001600160a01b039091169350915061078f6002830182611f72565b50600060038201819055600490910155600580546107af906001906122af565b815481106107bf576107bf61226a565b9060005260206000200154600586815481106107dd576107dd61226a565b60009182526020909120015560058054806107fa576107fa6122c2565b600082815260208120820160001990810191909155019055604051632142170760e11b8152306004820152336024820152604481018a90526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b15801561088057600080fd5b505af1158015610894573d6000803e3d6000fd5b5050505060008411156108ab576108ab81856115e7565b806001600160a01b0316336001600160a01b03168a7f246ee6115bfd84e00097b16569c2ff2f822026bb9595a82cd2c1e69d4b6ea50c8688876040516108f3939291906122d8565b60405180910390a4505050505050505050565b6003818154811061091657600080fd5b600091825260209091200154905081565b6000818152600460209081526040808320815160a08101835281546001600160a01b03908116825260018301541681850152600282018054845181870281018701865281815287969395860193909291908301828280156109a757602002820191906000526020600020905b815481526020019060010190808311610993575b505050505081526020016003820154815260200160048201548152505090508060800151915080606001516000036109f55760405163e0606b6360e01b815260048101849052602401610671565b6000806000806000610a05611670565b50509450945094509450945060005b84811015610aba5788838281518110610a2f57610a2f61226a565b602002602001015103610aaa5785841115610a85578386838381518110610a5857610a5861226a565b6020026020010151610a6a91906122fd565b610a749190612314565b610a7e9089612336565b9750610aba565b818181518110610a9757610a9761226a565b602002602001015188610a7e9190612336565b610ab381612296565b9050610a14565b50505050505050919050565b610b0a6040518060a0016040528060006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081525090565b600082815260046020908152604091829020825160a08101845281546001600160a01b0390811682526001830154168184015260028201805485518186028101860187528181529295939493860193830182828015610b8857602002820191906000526020600020905b815481526020019060010190808311610b74575b50505050508152602001600382015481526020016004820154815250509050919050565b600154600003610bcf5760405163afb0be3360e01b815260040160405180910390fd5b6005547f00000000000000000000000000000000000000000000000000000000000000008103610c345760405163fd20861560e01b81527f00000000000000000000000000000000000000000000000000000000000000006004820152602401610671565b60405163ef0e239b60e01b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ef0e239b90602401600060405180830381865afa158015610c9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cc4919081019061246f565b9050806080015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014610d1357604051637ad404bf60e11b815260048101849052602401610671565b7f000000000000000000000000000000000000000000000000000000000000000015801590610d66575080604001517f000000000000000000000000000000000000000000000000000000000000000014155b15610d8757604051637ad404bf60e11b815260048101849052602401610671565b60007f0000000000000000000000000000000000000000000000000000000000000000118015610de15750806060015163ffffffff167f000000000000000000000000000000000000000000000000000000000000000014155b15610e0257604051637ad404bf60e11b815260048101849052602401610671565b60048160c001516005811115610e1a57610e1a61254d565b14610e59578060c001516005811115610e3557610e3561254d565b604051633c053f9d60e21b8152600481019190915260248101849052604401610671565b600081602001516001600160a01b0316803b806020016040519081016040528181526000908060200190933c805190602001209050807f000000000000000000000000000000000000000000000000000000000000000014610ede57602082015160405162a2307960e51b81526001600160a01b039091166004820152602401610671565b6003548015610faf5760e083015151818114610f1057604051637ad404bf60e11b815260048101879052602401610671565b60005b81811015610fac578460e001518181518110610f3157610f3161226a565b602002602001015163ffffffff1660038281548110610f5257610f5261226a565b906000526020600020015414610f9c5760038181548110610f7557610f7561226a565b9060005260206000200154604051632ab10b0b60e21b815260040161067191815260200190565b610fa581612296565b9050610f13565b50505b610fcb8584600001516bffffffffffffffffffffffff166119ef565b600085815260046020908152604082209085015181546001600160a01b03821673ffffffffffffffffffffffffffffffffffffffff199182161783556001830180549091163317905590919061102090611b90565b80519091506110389060028401906020840190611f93565b50426003830155600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001879055604051632142170760e11b8152336004820152306024820152604481018890527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342842e0e90606401600060405180830381600087803b1580156110e257600080fd5b505af11580156110f6573d6000803e3d6000fd5b5050505084602001516001600160a01b0316336001600160a01b0316887f5d43ac9b1b213902df90d405b0006308578486b6c62182c5df202ed572c844e4846040516111429190612158565b60405180910390a450505050505050565b606060038054806020026020016040519081016040528092919081815260200182805480156111a157602002820191906000526020600020905b81548152602001906001019080831161118d575b5050505050905090565b6000816000546111bb9190612336565b90506000826001546111cd9190612336565b6000839055600181905590506112057f0000000000000000000000000000000000000000000000000000000000000000333086611ba1565b604080518481526020810184905290810182905233907f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e9060600160405180910390a2505050565b6060806000606080600080600080600080600080611269611670565b9650965096509650965096509650600086111561146d576000878611156113dc5760008060015b8981101561132e57888b8883815181106112ac576112ac61226a565b60200260200101516112be91906122fd565b6112c89190612314565b92506112d48383612336565b91508781815181106112e8576112e861226a565b60200260200101519350826004600086815260200190815260200160002060040160008282546113189190612336565b90915550611327905081612296565b9050611290565b50878a876000815181106113445761134461226a565b602002602001015161135691906122fd565b6113609190612314565b915061136c8282612336565b9050866000815181106113815761138161226a565b60200260200101519250808a11156113aa5761139d818b6122af565b6113a79083612336565b91505b600083815260046020819052604082200180548492906113cb908490612336565b9091555060009a5061146692505050565b60005b87811015611458578581815181106113f9576113f961226a565b602002602001015191508481815181106114155761141561226a565b60200260200101516004600084815260200190815260200160002060040160008282546114429190612336565b90915550611451905081612296565b90506113df565b5061146386896122af565b97505b5060018790555b8051156115375760005b82518110156114f45760008382815181106114945761149461226a565b602002602001015190508282815181106114b0576114b061226a565b60200260200101516004600083815260200190815260200160002060020190805190602001906114e1929190611f93565b5050806114ed90612296565b9050611477565b50426002556040805188815260208101889052600199507f21d81d5d656869e8ce3ba8d65526a2f0dbbcd3d36f5f9999eb7c84360e45eced910160405180910390a15b909c909b509399509097509550929350915050565b6005818154811061091657600080fd5b606060058054806020026020016040519081016040528092919081815260200182805480156111a1576020028201919060005260206000209081548152602001906001019080831161118d575050505050905090565b60007f00000000000000000000000000000000000000000000000000000000000000006002546115e29190612336565b905090565b806000808282546115f891906122af565b9091555061162990507f00000000000000000000000000000000000000000000000000000000000000008383611c2b565b816001600160a01b03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648260405161166491815260200190565b60405180910390a25050565b6002546001549060009081906060908190819081907f00000000000000000000000000000000000000000000000000000000000000006116b082426122af565b101580156116be5750600088115b156119e5576005548067ffffffffffffffff8111156116df576116df612349565b604051908082528060200260200182016040528015611708578160200160208202803683370190505b5093508067ffffffffffffffff81111561172457611724612349565b60405190808252806020026020018201604052801561174d578160200160208202803683370190505b5095508067ffffffffffffffff81111561176957611769612349565b604051908082528060200260200182016040528015611792578160200160208202803683370190505b5094508067ffffffffffffffff8111156117ae576117ae612349565b6040519080825280602002602001820160405280156117e157816020015b60608152602001906001900390816117cc5790505b50925060005b818110156119e257600581815481106118025761180261226a565b906000526020600020015485828151811061181f5761181f61226a565b6020026020010181815250506000600460008784815181106118435761184361226a565b60209081029190910181015182528101919091526040016000208054909150611874906001600160a01b0316611b90565b8583815181106118865761188661226a565b602090810291909101015260038101548490818111156118a4578091505b6118ae82426122af565b905060006119288886815181106118c7576118c761226a565b60200260200101518560020180548060200260200160405190810160405280929190818152602001828054801561191d57602002820191906000526020600020905b815481526020019060010190808311611909575b505050505084611ca8565b905080156119cd57600061195c837f00000000000000000000000000000000000000000000000000000000000000006122fd565b9050611968818e612336565b9c50808b8f8151811061197d5761197d61226a565b60200260200101818152505089868151811061199b5761199b61226a565b60200260200101518c8f815181106119b5576119b561226a565b60209081029190910101526119c98e612296565b9d50505b50505050806119db90612296565b90506117e7565b50505b5090919293949596565b604051633cebfa4f60e01b81526004810183905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633cebfa4f906024016040805180830381865afa158015611a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7c9190612563565b91509150816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614611b0557604051630b80380d60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015283166024820152604401610671565b7f0000000000000000000000000000000000000000000000000000000000000000816bffffffffffffffffffffffff161015611b8a57604051632b30b24760e21b81526bffffffffffffffffffffffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610671565b50505050565b6060611b9b82611cbd565b92915050565b60006040516323b872dd60e01b6000528460045283602452826044526020600060646000808a5af13d15601f3d1160016000511416171691506000606052806040525080611c245760405163abae3d6d60e01b81526001600160a01b03808716600483015280861660248301528416604482015260648101839052608401610671565b5050505050565b600060405163a9059cbb60e01b6000528360045282602452602060006044600080895af13d15601f3d1160016000511416171691506000606052806040525080611b8a5760405163abae3d6d60e01b81526001600160a01b0380861660048301523060248301528416604482015260648101839052608401610671565b6000611cb5848484611e0b565b949350505050565b6040805160028082526060808301845292602083019080368337019050509050816001600160a01b031663affed0e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3f9190612598565b81600081518110611d5257611d5261226a565b6020908102919091010152604051637af7347360e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690637af7347390602401602060405180830381865afa158015611dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de79190612598565b81600181518110611dfa57611dfa61226a565b602002602001018181525050919050565b60008082118015611e4f575082600081518110611e2a57611e2a61226a565b602002602001015184600081518110611e4557611e4561226a565b6020026020010151115b8015611e8e575082600181518110611e6957611e6961226a565b602002602001015184600181518110611e8457611e8461226a565b6020026020010151115b15611f6b57600083600081518110611ea857611ea861226a565b602002602001015185600081518110611ec357611ec361226a565b6020026020010151611ed591906122af565b9050600084600181518110611eec57611eec61226a565b602002602001015186600181518110611f0757611f0761226a565b6020026020010151611f1991906122af565b9050818111611f6857600084611f3783670de0b6b3a76400006122fd565b611f419190612314565b7f000000000000000000000000000000000000000000000000000000000000000011159350505b50505b9392505050565b5080546000825590600052602060002090810190611f909190611fde565b50565b828054828255906000526020600020908101928215611fce579160200282015b82811115611fce578251825591602001919060010190611fb3565b50611fda929150611fde565b5090565b5b80821115611fda5760008155600101611fdf565b6001600160a01b0381168114611f9057600080fd5b60008060008060006080868803121561202057600080fd5b853561202b81611ff3565b9450602086013561203b81611ff3565b935060408601359250606086013567ffffffffffffffff8082111561205f57600080fd5b818801915088601f83011261207357600080fd5b81358181111561208257600080fd5b89602082850101111561209457600080fd5b9699959850939650602001949392505050565b6000602082840312156120b957600080fd5b5035919050565b600081518084526020808501945080840160005b838110156120f0578151875295820195908201906001016120d4565b509495945050505050565b6020815260006001600160a01b0380845116602084015280602085015116604084015250604083015160a0606084015261213860c08401826120c0565b905060608401516080840152608084015160a08401528091505092915050565b602081526000611f6b60208301846120c0565b60c08152600061217e60c08301896120c0565b6020838203818501528189518084528284019150828160051b850101838c0160005b838110156121ce57601f198784030185526121bc8383516120c0565b948601949250908501906001016121a0565b50508a604088015286810360608801526121e8818b6120c0565b945050505050828103608084015261220081866120c0565b91505061221160a083018415159052565b979650505050505050565b600060208083528351808285015260005b818110156122495785810183015185820160400152820161222d565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016122a8576122a8612280565b5060010190565b81810381811115611b9b57611b9b612280565b634e487b7160e01b600052603160045260246000fd5b6060815260006122eb60608301866120c0565b60208301949094525060400152919050565b8082028115828204841417611b9b57611b9b612280565b60008261233157634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115611b9b57611b9b612280565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff8111828210171561238357612383612349565b60405290565b80516bffffffffffffffffffffffff811681146123a557600080fd5b919050565b80516123a581611ff3565b805163ffffffff811681146123a557600080fd5b8051600681106123a557600080fd5b600082601f8301126123e957600080fd5b8151602067ffffffffffffffff8083111561240657612406612349565b8260051b604051601f19603f8301168101818110848211171561242b5761242b612349565b60405293845285810183019383810192508785111561244957600080fd5b83870191505b8482101561221157612460826123b5565b8352918301919083019061244f565b60006020828403121561248157600080fd5b815167ffffffffffffffff8082111561249957600080fd5b9083019061010082860312156124ae57600080fd5b6124b661235f565b6124bf83612389565b81526124cd602084016123aa565b6020820152604083015160408201526124e8606084016123b5565b60608201526124f9608084016123b5565b608082015261250a60a084016123b5565b60a082015261251b60c084016123c9565b60c082015260e08301518281111561253257600080fd5b61253e878286016123d8565b60e08301525095945050505050565b634e487b7160e01b600052602160045260246000fd5b6000806040838503121561257657600080fd5b825161258181611ff3565b915061258f60208401612389565b90509250929050565b6000602082840312156125aa57600080fd5b505191905056fea26469706673582212203a642760d34faf6f4735553cf1254f450da8c520b28b804a01756e29698d486064736f6c63430008150033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/lib/autonolas-registries b/lib/autonolas-registries index 387ba93..f68ab3c 160000 --- a/lib/autonolas-registries +++ b/lib/autonolas-registries @@ -1 +1 @@ -Subproject commit 387ba93deeb36849c1c205711b97a2c6da0f2745 +Subproject commit f68ab3c2025721dda66aca778bda4ca44ca69193 diff --git a/lib/forge-std b/lib/forge-std index f73c73d..267acd3 160000 --- a/lib/forge-std +++ b/lib/forge-std @@ -1 +1 @@ -Subproject commit f73c73d2018eb6a111f35e4dae7b4f27401e9421 +Subproject commit 267acd30a625086b3f16e1a28cfe0c5097fa46b8 From 1ecedaa82a4edad3a423c04e8c3144e4fc97f19a Mon Sep 17 00:00:00 2001 From: Aleksandr Kuperman Date: Wed, 1 Nov 2023 13:00:13 +0000 Subject: [PATCH 2/2] chore: removing the staking contract address to avoid confusion --- scripts/deployment/globals_gnosis_mainnet.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/deployment/globals_gnosis_mainnet.json b/scripts/deployment/globals_gnosis_mainnet.json index 1932903..6aef436 100644 --- a/scripts/deployment/globals_gnosis_mainnet.json +++ b/scripts/deployment/globals_gnosis_mainnet.json @@ -22,5 +22,5 @@ "configHash": "0x0000000000000000000000000000000000000000000000000000000000000000" }, "agentMechAddress": "0x77af31De935740567Cf4fF1986D04B2c964A786a", - "serviceStakingTokenMechUsageAddress": "0x24F792D51b398928459Dfbb4181bDb4D5d2CD472" + "serviceStakingTokenMechUsageAddress": "" }