From 1dcbe58307cc8266c5cfba81f13d04b48e5b2bdb Mon Sep 17 00:00:00 2001 From: noel Date: Fri, 23 Aug 2024 15:03:25 +0900 Subject: [PATCH] docs: new service manager implementation --- .../17000/run-1724391911.json | 65 +++++++++++++++++++ .../17000/run-latest.json | 49 +++++++------- .../17000/run-1724392959.json | 65 +++++++++++++++++++ .../17000/run-latest.json | 65 +++++++++++++++++++ docs/Deployments.md | 2 +- 5 files changed, 221 insertions(+), 25 deletions(-) create mode 100644 contracts/broadcast/MachServiceManagerImplDeployer.s.sol/17000/run-1724391911.json create mode 100644 contracts/broadcast/MachServiceManagerUpgrader.s.sol/17000/run-1724392959.json create mode 100644 contracts/broadcast/MachServiceManagerUpgrader.s.sol/17000/run-latest.json diff --git a/contracts/broadcast/MachServiceManagerImplDeployer.s.sol/17000/run-1724391911.json b/contracts/broadcast/MachServiceManagerImplDeployer.s.sol/17000/run-1724391911.json new file mode 100644 index 0000000..de8ef1d --- /dev/null +++ b/contracts/broadcast/MachServiceManagerImplDeployer.s.sol/17000/run-1724391911.json @@ -0,0 +1,65 @@ +{ + "transactions": [ + { + "hash": "0xe5b46c0a568e266b3573babc28280a5120bafc12e12dfd0d91c09b38a3d32753", + "transactionType": "CREATE", + "contractName": "MachServiceManager", + "contractAddress": "0x60e6f7de65a99e0d4c953fe0792b6b5f34de6801", + "function": null, + "arguments": [ + "0x055733000064333CaDDbC92763c58BF0192fFeBf", + "0xAcc1fb458a1317E886dB376Fc8141540537E68fE", + "0x1eA7D160d325B289bF981e0D7aB6Bf3261a0FFf2", + "0x0b3eE1aDc2944DCcBb817f7d77915C7d38F7B858" + ], + "transaction": { + "from": "0x31cc55d177824193a5fa2bf34da8afafbd366111", + "gas": "0x66905a", + "value": "0x0", + "input": "0x6101806040523480156200001257600080fd5b5060405162006013380380620060138339810160408190526200003591620002e5565b6001600160a01b0380851660805280841660a05280831660c052811660e0528184848284620000636200020a565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e791906200034d565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000140573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016691906200034d565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e891906200034d565b6001600160a01b03166101605250620002006200020a565b5050505062000374565b603454610100900460ff1615620002775760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60345460ff9081161015620002ca576034805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002e257600080fd5b50565b60008060008060808587031215620002fc57600080fd5b84516200030981620002cc565b60208601519094506200031c81620002cc565b60408601519093506200032f81620002cc565b60608601519092506200034281620002cc565b939692955090935050565b6000602082840312156200036057600080fd5b81516200036d81620002cc565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051615b91620004826000396000818161065b0152611dcc0152600081816104950152611fae0152600081816104bc0152818161218401526123460152600081816105090152818161146601528181611a9701528181611c2f0152611e69015260008181611168015281816112c30152818161135a01528181612d0301528181612e860152612f25015260008181610f9301528181611022015281816110a2015281816127dd01528181612a0e01528181612c410152612de10152600081816133e00152818161349c01526135880152600081816104e00152818161286e01528181612a6a0152612ae90152615b916000f3fe608060405234801561001057600080fd5b50600436106102bb5760003560e01c806372faa8df11610182578063c6a2aac8116100e9578063edaa410e116100a2578063f98f5b921161007c578063f98f5b92146106c6578063fabc1cbc146106d9578063fc299dee146106ec578063fce36c7d146106ff57600080fd5b8063edaa410e14610698578063ef024458146106ab578063f2fde38b146106b357600080fd5b8063c6a2aac814610633578063cf8e629a1461063b578063d190741914610643578063df5cf72314610656578063e0e387ab1461067d578063e481af9d1461069057600080fd5b80639926ee7d1161013b5780639926ee7d146105ba5780639d81ceba146105cd578063a364f4da146105ed578063a98fb35514610600578063b733cc7714610613578063b98d09081461062657600080fd5b806372faa8df1461055457806375ccc13214610567578063886f11951461057a5780638da5cb5b1461058d57806394c8e4ff1461059e5780639925378f146105b257600080fd5b8063429d5bf0116102265780635df45946116101df5780635df459461461049057806368304835146104b75780636b3aa72e146104de5780636d14a987146105045780636efb46361461052b578063715018a61461054c57600080fd5b8063429d5bf0146103e75780634c6b05d9146103fa5780634deabc211461042d578063595c6a67146104535780635ac86ab71461045b5780635c975abb1461047e57600080fd5b80632f640a09116102785780632f640a091461036857806333cfb7b71461037b57806339bc68e71461039b5780633bc28c8c146103ae5780633deebb69146103c1578063416c7e5e146103d457600080fd5b80630898f07f146102c05780630d1bc893146102d557806310d67a2f146102e8578063136439dd146102fb578063171f1d5b1461030e57806322758a4a1461033d575b600080fd5b6102d36102ce366004614d58565b610712565b005b6102d36102e3366004614e23565b610a56565b6102d36102f6366004614ecc565b610be1565b6102d3610309366004614ee9565b610c94565b61032161031c366004614f02565b610dd3565b6040805192151583529015156020830152015b60405180910390f35b600854610350906001600160a01b031681565b6040516001600160a01b039091168152602001610334565b6102d3610376366004614ecc565b610f5d565b61038e610389366004614ecc565b610f6e565b6040516103349190614f53565b600554610350906001600160a01b031681565b6102d36103bc366004614ecc565b61143d565b6102d36103cf366004614fae565b61144e565b6102d36103e2366004614fde565b611464565b6102d36103f536600461500a565b61159b565b61041d610408366004614ee9565b60006020819052908152604090205460ff1681565b6040519015158152602001610334565b60055461044190600160a81b900460ff1681565b60405160ff9091168152602001610334565b6102d361161d565b61041d61046936600461500a565b60fe54600160ff9092169190911b9081161490565b60fe545b604051908152602001610334565b6103507f000000000000000000000000000000000000000000000000000000000000000081565b6103507f000000000000000000000000000000000000000000000000000000000000000081565b7f0000000000000000000000000000000000000000000000000000000000000000610350565b6103507f000000000000000000000000000000000000000000000000000000000000000081565b61053e610539366004615027565b6116e4565b60405161033492919061511a565b6102d36125fb565b6102d3610562366004615163565b61260f565b61041d610575366004614ecc565b61278e565b60fd54610350906001600160a01b031681565b6067546001600160a01b0316610350565b60055461041d90600160a01b900460ff1681565b6104826127a1565b6102d36105c8366004615225565b6127b2565b6105e06105db3660046152cf565b6128db565b60405161033491906152fb565b6102d36105fb366004614ecc565b6129e3565b6102d361060e366004615333565b612aca565b610482610621366004614ee9565b612b1e565b60cb5461041d9060ff1681565b6102d3612b35565b6102d3612ba6565b610350610651366004614ee9565b612c0f565b6103507f000000000000000000000000000000000000000000000000000000000000000081565b61041d61068b366004615383565b612c1c565b61038e612c3b565b6102d36106a6366004615383565b613004565b610482606481565b6102d36106c1366004614ecc565b6130b1565b6102d36106d4366004614ecc565b613127565b6102d36106e7366004614ee9565b613138565b609954610350906001600160a01b031681565b6102d361070d3660046153a5565b613294565b60fe541561073b5760405162461bcd60e51b8152600401610732906153e6565b60405180910390fd5b6005546001600160a01b0316336001600160a01b03161461076f5760405163fc4a01bd60e01b815260040160405180910390fd5b608082013560008181526020819052604090205460ff166107a35760405163daf4a8a360e01b815260040160405180910390fd5b3233146107c357604051636edaef2f60e11b815260040160405180910390fd5b608083013560009081526006602052604090206107e19084356135bf565b156107ff5760405163939bc9df60e01b815260040160405180910390fd5b43610810608085016060860161541d565b63ffffffff16106108345760405163c15ef5b560e01b815260040160405180910390fd5b600061083f846135d7565b905061084e6040850185615438565b905061085d6020860186615438565b90501461087d5760405163c9df75a560e01b815260040160405180910390fd5b60006108a6826108906020880188615438565b6108a060808a0160608b0161541d565b886116e4565b50905060005b6108b96040870187615438565b90508110156109d95760006108d16040880188615438565b838181106108e1576108e161547e565b919091013560f81c915050606481111561090e5760405163048278b760e41b815260040160405180910390fd5b60055460ff600160a81b9091048116908216101561093f5760405163bbf727c160e01b815260040160405180910390fd5b8060ff16836020015183815181106109595761095961547e565b602002602001015161096b91906154aa565b6001600160601b031660648460000151848151811061098c5761098c61547e565b60200260200101516001600160601b03166109a791906154d9565b10156109c657604051633916714960e21b815260040160405180910390fd5b50806109d1816154f8565b9150506108ac565b50608085013560009081526001602052604081206109f8908735613626565b905080610a185760405163f411c32760e01b815260040160405180910390fd5b6040518635815283907ffdda6f7d4825a4f1e4e97b50a26a69a8bcc3f4fcb1113cc14ce8e7098ca636659060200160405180910390a2505050505050565b603454610100900460ff1615808015610a765750603454600160ff909116105b80610a905750303b158015610a90575060345460ff166001145b610af35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610732565b6034805460ff191660011790558015610b16576034805461ff0019166101001790555b610b208989613632565b610b2a8787613718565b610b3385613795565b610b3c846137f7565b60005b82811015610b7a57610b6a848483818110610b5c57610b5c61547e565b905060200201356001613851565b610b73816154f8565b9050610b3f565b506005805461ffff60a01b191661420160a01b1790558015610bd6576034805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b60fd60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c589190615513565b6001600160a01b0316336001600160a01b031614610c885760405162461bcd60e51b815260040161073290615530565b610c91816138f9565b50565b60fd5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d00919061557a565b610d1c5760405162461bcd60e51b815260040161073290615597565b60fe5481811614610d955760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610732565b60fe81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610e1b57610e1b61547e565b60200201518951600160200201518a60200151600060028110610e4057610e4061547e565b60200201518b60200151600160028110610e5c57610e5c61547e565b602090810291909101518c518d830151604051610eb99a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610edc91906155df565b9050610f4f610ef5610eee88846139f0565b8690613a87565b610efd613b1b565b610f45610f3685610f30604080518082018252600080825260209182015281518083019092526001825260029082015290565b906139f0565b610f3f8c613bdb565b90613a87565b886201d4c0613c6b565b909890975095505050505050565b610f65613e8f565b610c9181613795565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610fda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffe9190615601565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108d919061561a565b90506001600160c01b038116158061112757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111229190615643565b60ff16155b1561114357505060408051600081526020810190915292915050565b6000611157826001600160c01b0316613ee9565b90506000805b825181101561122d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f58483815181106111a7576111a761547e565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa1580156111eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120f9190615601565b6112199083615660565b915080611225816154f8565b91505061115d565b506000816001600160401b038111156112485761124861493a565b604051908082528060200260200182016040528015611271578160200160208202803683370190505b5090506000805b84518110156114305760008582815181106112955761129561547e565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa15801561130a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132e9190615601565b905060005b8181101561141a576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa1580156113a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113cc919061568d565b600001518686815181106113e2576113e261547e565b6001600160a01b039092166020928302919091019091015284611404816154f8565b9550508080611412906154f8565b915050611333565b5050508080611428906154f8565b915050611278565b5090979650505050505050565b611445613e8f565b610c9181613fab565b611456613e8f565b6114608282613851565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e69190615513565b6001600160a01b0316336001600160a01b0316146115925760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610732565b610c9181614014565b6115a3613e8f565b60648160ff1611156115c85760405163048278b760e41b815260040160405180910390fd5b6005805460ff60a81b1916600160a81b60ff8416908102919091179091556040519081527fc3acdc4f4bc283baa27c4207eb2c32954fbb26960847c9e15c2f7c8970134244906020015b60405180910390a150565b60fd5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015611665573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611689919061557a565b6116a55760405162461bcd60e51b815260040161073290615597565b60001960fe81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b604080518082019091526060808252602082015260008461175b5760405162461bcd60e51b81526020600482015260376024820152600080516020615b3c83398151915260448201527f7265733a20656d7074792071756f72756d20696e7075740000000000000000006064820152608401610732565b60408301515185148015611773575060a08301515185145b8015611783575060c08301515185145b8015611793575060e08301515185145b6117fd5760405162461bcd60e51b81526020600482015260416024820152600080516020615b3c83398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610732565b825151602084015151146118755760405162461bcd60e51b815260206004820152604460248201819052600080516020615b3c833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610732565b4363ffffffff168463ffffffff16106118e45760405162461bcd60e51b815260206004820152603c6024820152600080516020615b3c83398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610732565b6040805180820182526000808252602080830191909152825180840190935260608084529083015290866001600160401b038111156119255761192561493a565b60405190808252806020026020018201604052801561194e578160200160208202803683370190505b506020820152866001600160401b0381111561196c5761196c61493a565b604051908082528060200260200182016040528015611995578160200160208202803683370190505b50815260408051808201909152606080825260208201528560200151516001600160401b038111156119c9576119c961493a565b6040519080825280602002602001820160405280156119f2578160200160208202803683370190505b5081526020860151516001600160401b03811115611a1257611a1261493a565b604051908082528060200260200182016040528015611a3b578160200160208202803683370190505b5081602001819052506000611b0d8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051639aa1653d60e01b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169350639aa1653d925060048083019260209291908290030181865afa158015611ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b089190615643565b614055565b905060005b876020015151811015611da857611b5788602001518281518110611b3857611b3861547e565b6020026020010151805160009081526020918201519091526040902090565b83602001518281518110611b6d57611b6d61547e565b60209081029190910101528015611c2d576020830151611b8e6001836156ce565b81518110611b9e57611b9e61547e565b602002602001015160001c83602001518281518110611bbf57611bbf61547e565b602002602001015160001c11611c2d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615b3c83398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610732565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec635184602001518381518110611c7257611c7261547e565b60200260200101518b8b600001518581518110611c9157611c9161547e565b60200260200101516040518463ffffffff1660e01b8152600401611cce9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0f919061561a565b6001600160c01b031683600001518281518110611d2e57611d2e61547e565b602002602001018181525050611d94610eee611d688486600001518581518110611d5a57611d5a61547e565b6020026020010151166140df565b8a602001518481518110611d7e57611d7e61547e565b602002602001015161410a90919063ffffffff16565b945080611da0816154f8565b915050611b12565b5050611db3836141ee565b60cb5490935060ff16600081611dca576000611e4c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4c9190615601565b905060005b8a8110156124ca578215611fac578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c428f8f86818110611ea857611ea861547e565b60405160e085901b6001600160e01b031916815292013560f81c600483015250602401602060405180830381865afa158015611ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0c9190615601565b611f169190615660565b11611fac5760405162461bcd60e51b81526020600482015260666024820152600080516020615b3c83398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610732565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac8d8d84818110611fed57611fed61547e565b9050013560f81c60f81b60f81c8c8c60a0015185815181106120115761201161547e565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa15801561206d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209191906156e5565b6001600160401b0319166120b48a604001518381518110611b3857611b3861547e565b67ffffffffffffffff1916146121505760405162461bcd60e51b81526020600482015260616024820152600080516020615b3c83398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610732565b612180896040015182815181106121695761216961547e565b602002602001015187613a8790919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c568d8d848181106121c3576121c361547e565b9050013560f81c60f81b60f81c8c8c60c0015185815181106121e7576121e761547e565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612243573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122679190615710565b8560200151828151811061227d5761227d61547e565b6001600160601b039092166020928302919091018201528501518051829081106122a9576122a961547e565b6020026020010151856000015182815181106122c7576122c761547e565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a60200151518110156124b55761233f866000015182815181106123115761231161547e565b60200260200101518f8f8681811061232b5761232b61547e565b600192013560f81c9290921c811614919050565b156124a3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae8f8f868181106123855761238561547e565b9050013560f81c60f81b60f81c8e896020015185815181106123a9576123a961547e565b60200260200101518f60e0015188815181106123c7576123c761547e565b602002602001015187815181106123e0576123e061547e565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124689190615710565b875180518590811061247c5761247c61547e565b60200260200101818151612490919061572d565b6001600160601b03169052506001909101905b806124ad816154f8565b9150506122eb565b505080806124c2906154f8565b915050611e51565b5050506000806124e48c868a606001518b60800151610dd3565b91509150816125555760405162461bcd60e51b81526020600482015260436024820152600080516020615b3c83398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610732565b806125b65760405162461bcd60e51b81526020600482015260396024820152600080516020615b3c83398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610732565b505060008782602001516040516020016125d1929190615755565b60408051808303601f190181529190528051602090910120929b929a509198505050505050505050565b612603613e8f565b61260d6000614289565b565b6008546001600160a01b0316336001600160a01b0316146126435760405163b8088f8760e01b815260040160405180910390fd5b8281146126925760405162461bcd60e51b815260206004820152601c60248201527f496e70757420617272617973206c656e677468206d69736d61746368000000006044820152606401610732565b60005b8381101561274a5760008585838181106126b1576126b161547e565b90506020020160208101906126c69190614ecc565b90506001600160a01b0381166126ef5760405163d92e233d60e01b815260040160405180910390fd5b8383838181106127015761270161547e565b90506020020160208101906127169190614fde565b1561272c576127266009826142db565b50612739565b6127376009826142f0565b505b50612743816154f8565b9050612695565b507f9fbe9a594da1fe3606c91442c9f6caaa2aba26087872d8373187473f11efd40b84848484604051612780949392919061579d565b60405180910390a150505050565b600061279b600983614305565b92915050565b60006127ad6009614327565b905090565b60fe54156127d25760405162461bcd60e51b8152600401610732906153e6565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461281a5760405162461bcd60e51b81526004016107329061582d565b600554600160a01b900460ff16801561283957506128378261278e565b155b1561285757604051634414c63360e01b815260040160405180910390fd5b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906128a590859085906004016158f2565b600060405180830381600087803b1580156128bf57600080fd5b505af11580156128d3573d6000803e3d6000fd5b505050505050565b6000838152600160205260408120606091906128f690614327565b9050808410612918576040516392c4425960e01b815260040160405180910390fd5b60006129248486615660565b9050818111156129315750805b600061293d86836156ce565b6001600160401b038111156129545761295461493a565b60405190808252806020026020018201604052801561297d578160200160208202803683370190505b509050855b828110156129d85760008881526001602052604090206129a29082614331565b826129ad89846156ce565b815181106129bd576129bd61547e565b60209081029190910101526129d1816154f8565b9050612982565b509695505050505050565b60fe5415612a035760405162461bcd60e51b8152600401610732906153e6565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612a4b5760405162461bcd60e51b81526004016107329061582d565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b158015612aaf57600080fd5b505af1158015612ac3573d6000803e3d6000fd5b5050505050565b612ad2613e8f565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb35590612a9590849060040161593d565b600081815260016020526040812061279b90614327565b612b3d613e8f565b600554600160a01b900460ff1615612b6857604051637952fbad60e11b815260040160405180910390fd5b6005805460ff60a01b1916600160a01b1790556040517f8a943acd5f4e6d3df7565a4a08a93f6b04cc31bb6c01ca4aef7abd6baf455ec390600090a1565b612bae613e8f565b600554600160a01b900460ff16612bd757604051625ecddb60e01b815260040160405180910390fd5b6005805460ff60a01b191690556040517f2d35c8d348a345fd7b3b03b7cfcf7ad0b60c2d46742d5ca536342e4185becb0790600090a1565b600061279b600983614331565b6000828152600160205260408120612c3490836135bf565b9392505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc19190615643565b60ff16905080612cdf57505060408051600081526020810190915290565b6000805b82811015612d9457604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612d52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d769190615601565b612d809083615660565b915080612d8c816154f8565b915050612ce3565b506000816001600160401b03811115612daf57612daf61493a565b604051908082528060200260200182016040528015612dd8578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e619190615643565b60ff16811015612ffa57604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef99190615601565b905060005b81811015612fe5576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f97919061568d565b60000151858581518110612fad57612fad61547e565b6001600160a01b039092166020928302919091019091015283612fcf816154f8565b9450508080612fdd906154f8565b915050612efe565b50508080612ff2906154f8565b915050612ddf565b5090949350505050565b600082815260208190526040902054829060ff166130355760405163daf4a8a360e01b815260040160405180910390fd5b61303d613e8f565b6000838152600160205260408120613055908461433d565b905080156130ab5760008481526006602052604090206130759084613626565b50604080518481523360208201527f1bdeffc0337373bf2f6fd4219080133eeaaee0554206d9bb24a019d96973c1eb9101612780565b50505050565b6130b9613e8f565b6001600160a01b03811661311e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610732565b610c9181614289565b61312f613e8f565b610c91816137f7565b60fd60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561318b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131af9190615513565b6001600160a01b0316336001600160a01b0316146131df5760405162461bcd60e51b815260040161073290615530565b60fe5419811960fe5419161461325d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610732565b60fe81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610dc8565b61329c614349565b60005b81811015613570578282828181106132b9576132b961547e565b90506020028101906132cb9190615950565b6132dc906040810190602001614ecc565b6001600160a01b03166323b872dd33308686868181106132fe576132fe61547e565b90506020028101906133109190615950565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015613367573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061338b919061557a565b5060008383838181106133a0576133a061547e565b90506020028101906133b29190615950565b6133c3906040810190602001614ecc565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015613431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134559190615601565b90508383838181106134695761346961547e565b905060200281019061347b9190615950565b61348c906040810190602001614ecc565b6001600160a01b031663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000838787878181106134ce576134ce61547e565b90506020028101906134e09190615950565b604001356134ee9190615660565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355d919061557a565b505080613569906154f8565b905061329f565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906128a590859085906004016159d6565b60008181526001830160205260408120541515612c34565b60006135e2826143de565b60408051825160208083019190915283015163ffffffff16818301529101516060820152608001604051602081830303815290604052805190602001209050919050565b6000612c34838361443d565b60fd546001600160a01b031615801561365357506001600160a01b03821615155b6136d55760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610732565b60fe81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2611460826138f9565b603454610100900460ff166137835760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610732565b61378c82614289565b61146081613fab565b600580546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f175f27847b3568e0da876ffca3dc0bb52db4e6556346aedb530c6fe86610da2791015b60405180910390a15050565b600880546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f1d7f4da50d8af7a6cea3e56e235c952f5a92d4c862da2d587f7b67f6d0156bb291016137eb565b60018210156138735760405163daf4a8a360e01b815260040160405180910390fd5b60008281526020819052604090205460ff16151581151514156138a957604051631cf3d59360e31b815260040160405180910390fd5b60008281526020818152604091829020805460ff19168415159081179091558251858152918201527fe6dc5430aa4f5f1f54e9c1a3698de870c829afe22acf2737d45f109b82881b1e91016137eb565b6001600160a01b0381166139875760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610732565b60fd54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fd80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820190915260008082526020820152613a0c614860565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808015613a3f57613a41565bfe5b5080613a7f5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610732565b505092915050565b6040805180820190915260008082526020820152613aa361487e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808015613a3f575080613a7f5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610732565b613b2361489c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080613c0b600080516020615b1c833981519152866155df565b90505b613c178161448c565b9093509150600080516020615b1c833981519152828309831415613c51576040805180820190915290815260208101919091529392505050565b600080516020615b1c833981519152600182089050613c0e565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190613c9d6148c1565b60005b6002811015613e62576000613cb68260066154d9565b9050848260028110613cca57613cca61547e565b60200201515183613cdc836000615660565b600c8110613cec57613cec61547e565b6020020152848260028110613d0357613d0361547e565b60200201516020015183826001613d1a9190615660565b600c8110613d2a57613d2a61547e565b6020020152838260028110613d4157613d4161547e565b6020020151515183613d54836002615660565b600c8110613d6457613d6461547e565b6020020152838260028110613d7b57613d7b61547e565b6020020151516001602002015183613d94836003615660565b600c8110613da457613da461547e565b6020020152838260028110613dbb57613dbb61547e565b602002015160200151600060028110613dd657613dd661547e565b602002015183613de7836004615660565b600c8110613df757613df761547e565b6020020152838260028110613e0e57613e0e61547e565b602002015160200151600160028110613e2957613e2961547e565b602002015183613e3a836005615660565b600c8110613e4a57613e4a61547e565b60200201525080613e5a816154f8565b915050613ca0565b50613e6b6148e0565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6067546001600160a01b0316331461260d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610732565b6060600080613ef7846140df565b61ffff166001600160401b03811115613f1257613f1261493a565b6040519080825280601f01601f191660200182016040528015613f3c576020820181803683370190505b5090506000805b825182108015613f54575061010081105b15612ffa576001811b935085841615613f9b578060f81b838381518110613f7d57613f7d61547e565b60200101906001600160f81b031916908160001a9053508160010191505b613fa4816154f8565b9050613f43565b609954604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1609980546001600160a01b0319166001600160a01b0392909216919091179055565b60cb805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc90602001611612565b6000806140618461450e565b9050808360ff166001901b11612c345760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610732565b6000805b821561279b576140f46001846156ce565b909216918061410281615ae3565b9150506140e3565b60408051808201909152600080825260208201526102008261ffff16106141665760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610732565b8161ffff166001141561417a57508161279b565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff16106141e357600161ffff871660ff83161c811614156141c6576141c38484613a87565b93505b6141d08384613a87565b92506201fffe600192831b169101614196565b509195945050505050565b6040805180820190915260008082526020820152815115801561421357506020820151155b15614231575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020615b1c833981519152846020015161426491906155df565b61427c90600080516020615b1c8339815191526156ce565b905292915050565b919050565b606780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000612c34836001600160a01b03841661443d565b6000612c34836001600160a01b03841661469b565b6001600160a01b03811660009081526001830160205260408120541515612c34565b600061279b825490565b6000612c34838361478e565b6000612c34838361469b565b6099546001600160a01b0316331461260d5760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610732565b6040805160608101825260008082526020820181905291810191909152604051806060016040528083600001358152602001836060016020810190614423919061541d565b63ffffffff16815260200183608001358152509050919050565b60008181526001830160205260408120546144845750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561279b565b50600061279b565b60008080600080516020615b1c8339815191526003600080516020615b1c83398151915286600080516020615b1c833981519152888909090890506000614502827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615b1c8339815191526147b8565b91959194509092505050565b6000610100825111156145975760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610732565b81516145a557506000919050565b600080836000815181106145bb576145bb61547e565b0160200151600160f89190911c81901b92505b8451811015614692578481815181106145e9576145e961547e565b0160200151600160f89190911c1b915082821161467e5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610732565b9181179161468b816154f8565b90506145ce565b50909392505050565b600081815260018301602052604081205480156147845760006146bf6001836156ce565b85549091506000906146d3906001906156ce565b90508181146147385760008660000182815481106146f3576146f361547e565b90600052602060002001549050808760000184815481106147165761471661547e565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061474957614749615b05565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061279b565b600091505061279b565b60008260000182815481106147a5576147a561547e565b9060005260206000200154905092915050565b6000806147c36148e0565b6147cb6148fe565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828015613a3f5750826148555760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610732565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806148af61491c565b81526020016148bc61491c565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156149725761497261493a565b60405290565b60405161010081016001600160401b03811182821017156149725761497261493a565b604051606081016001600160401b03811182821017156149725761497261493a565b604051601f8201601f191681016001600160401b03811182821017156149e5576149e561493a565b604052919050565b60006001600160401b03821115614a0657614a0661493a565b5060051b60200190565b803563ffffffff8116811461428457600080fd5b600082601f830112614a3557600080fd5b81356020614a4a614a45836149ed565b6149bd565b82815260059290921b84018101918181019086841115614a6957600080fd5b8286015b848110156129d857614a7e81614a10565b8352918301918301614a6d565b600060408284031215614a9d57600080fd5b614aa5614950565b9050813581526020820135602082015292915050565b600082601f830112614acc57600080fd5b81356020614adc614a45836149ed565b82815260069290921b84018101918181019086841115614afb57600080fd5b8286015b848110156129d857614b118882614a8b565b835291830191604001614aff565b600082601f830112614b3057600080fd5b614b38614950565b806040840185811115614b4a57600080fd5b845b81811015614b64578035845260209384019301614b4c565b509095945050505050565b600060808284031215614b8157600080fd5b614b89614950565b9050614b958383614b1f565b8152614ba48360408401614b1f565b602082015292915050565b600082601f830112614bc057600080fd5b81356020614bd0614a45836149ed565b82815260059290921b84018101918181019086841115614bef57600080fd5b8286015b848110156129d85780356001600160401b03811115614c125760008081fd5b614c208986838b0101614a24565b845250918301918301614bf3565b60006101808284031215614c4157600080fd5b614c49614978565b905081356001600160401b0380821115614c6257600080fd5b614c6e85838601614a24565b83526020840135915080821115614c8457600080fd5b614c9085838601614abb565b60208401526040840135915080821115614ca957600080fd5b614cb585838601614abb565b6040840152614cc78560608601614b6f565b6060840152614cd98560e08601614a8b565b6080840152610120840135915080821115614cf357600080fd5b614cff85838601614a24565b60a0840152610140840135915080821115614d1957600080fd5b614d2585838601614a24565b60c0840152610160840135915080821115614d3f57600080fd5b50614d4c84828501614baf565b60e08301525092915050565b60008060408385031215614d6b57600080fd5b82356001600160401b0380821115614d8257600080fd5b9084019060a08287031215614d9657600080fd5b90925060208401359080821115614dac57600080fd5b50614db985828601614c2e565b9150509250929050565b6001600160a01b0381168114610c9157600080fd5b60008083601f840112614dea57600080fd5b5081356001600160401b03811115614e0157600080fd5b6020830191508360208260051b8501011115614e1c57600080fd5b9250929050565b60008060008060008060008060e0898b031215614e3f57600080fd5b8835614e4a81614dc3565b9750602089013596506040890135614e6181614dc3565b95506060890135614e7181614dc3565b94506080890135614e8181614dc3565b935060a0890135614e9181614dc3565b925060c08901356001600160401b03811115614eac57600080fd5b614eb88b828c01614dd8565b999c989b5096995094979396929594505050565b600060208284031215614ede57600080fd5b8135612c3481614dc3565b600060208284031215614efb57600080fd5b5035919050565b6000806000806101208587031215614f1957600080fd5b84359350614f2a8660208701614a8b565b9250614f398660608701614b6f565b9150614f488660e08701614a8b565b905092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015614f945783516001600160a01b031683529284019291840191600101614f6f565b50909695505050505050565b8015158114610c9157600080fd5b60008060408385031215614fc157600080fd5b823591506020830135614fd381614fa0565b809150509250929050565b600060208284031215614ff057600080fd5b8135612c3481614fa0565b60ff81168114610c9157600080fd5b60006020828403121561501c57600080fd5b8135612c3481614ffb565b60008060008060006080868803121561503f57600080fd5b8535945060208601356001600160401b038082111561505d57600080fd5b818801915088601f83011261507157600080fd5b81358181111561508057600080fd5b89602082850101111561509257600080fd5b60208301965094506150a660408901614a10565b935060608801359150808211156150bc57600080fd5b506150c988828901614c2e565b9150509295509295909350565b600081518084526020808501945080840160005b8381101561510f5781516001600160601b0316875295820195908201906001016150ea565b509495945050505050565b604081526000835160408084015261513560808401826150d6565b90506020850151603f1984830301606085015261515282826150d6565b925050508260208301529392505050565b6000806000806040858703121561517957600080fd5b84356001600160401b038082111561519057600080fd5b61519c88838901614dd8565b909650945060208701359150808211156151b557600080fd5b506151c287828801614dd8565b95989497509550505050565b60006001600160401b038311156151e7576151e761493a565b6151fa601f8401601f19166020016149bd565b905082815283838301111561520e57600080fd5b828260208301376000602084830101529392505050565b6000806040838503121561523857600080fd5b823561524381614dc3565b915060208301356001600160401b038082111561525f57600080fd5b908401906060828703121561527357600080fd5b61527b61499b565b82358281111561528a57600080fd5b83019150601f8201871361529d57600080fd5b6152ac878335602085016151ce565b815260208301356020820152604083013560408201528093505050509250929050565b6000806000606084860312156152e457600080fd5b505081359360208301359350604090920135919050565b6020808252825182820181905260009190848201906040850190845b81811015614f9457835183529284019291840191600101615317565b60006020828403121561534557600080fd5b81356001600160401b0381111561535b57600080fd5b8201601f8101841361536c57600080fd5b61537b848235602084016151ce565b949350505050565b6000806040838503121561539657600080fd5b50508035926020909101359150565b600080602083850312156153b857600080fd5b82356001600160401b038111156153ce57600080fd5b6153da85828601614dd8565b90969095509350505050565b6020808252601c908201527f5061757361626c653a20636f6e74726163742069732070617573656400000000604082015260600190565b60006020828403121561542f57600080fd5b612c3482614a10565b6000808335601e1984360301811261544f57600080fd5b8301803591506001600160401b0382111561546957600080fd5b602001915036819003821315614e1c57600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160601b03808316818516818304811182151516156154d0576154d0615494565b02949350505050565b60008160001904831182151516156154f3576154f3615494565b500290565b600060001982141561550c5761550c615494565b5060010190565b60006020828403121561552557600080fd5b8151612c3481614dc3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561558c57600080fd5b8151612c3481614fa0565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000826155fc57634e487b7160e01b600052601260045260246000fd5b500690565b60006020828403121561561357600080fd5b5051919050565b60006020828403121561562c57600080fd5b81516001600160c01b0381168114612c3457600080fd5b60006020828403121561565557600080fd5b8151612c3481614ffb565b6000821982111561567357615673615494565b500190565b6001600160601b0381168114610c9157600080fd5b60006040828403121561569f57600080fd5b6156a7614950565b82516156b281614dc3565b815260208301516156c281615678565b60208201529392505050565b6000828210156156e0576156e0615494565b500390565b6000602082840312156156f757600080fd5b815167ffffffffffffffff1981168114612c3457600080fd5b60006020828403121561572257600080fd5b8151612c3481615678565b60006001600160601b038381169083168181101561574d5761574d615494565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b8381101561579057815185529382019390820190600101615774565b5092979650505050505050565b6040808252810184905260008560608301825b878110156157e05782356157c381614dc3565b6001600160a01b03168252602092830192909101906001016157b0565b5083810360208581019190915285825291508590820160005b8681101561582057823561580c81614fa0565b1515825291830191908301906001016157f9565b5098975050505050505050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b818110156158cb576020818501810151868301820152016158af565b818111156158dd576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b038316815260406020820152600082516060604084015261591c60a08401826158a5565b90506020840151606084015260408401516080840152809150509392505050565b602081526000612c3460208301846158a5565b60008235609e1983360301811261596657600080fd5b9190910192915050565b803561428481614dc3565b8183526000602080850194508260005b8581101561510f57813561599e81614dc3565b6001600160a01b03168752818301356159b681615678565b6001600160601b031687840152604096870196919091019060010161598b565b60208082528181018390526000906040808401600586901b8501820187855b88811015615ad557878303603f190184528135368b9003609e19018112615a1b57600080fd5b8a0160a0813536839003601e19018112615a3457600080fd5b820180356001600160401b03811115615a4c57600080fd5b8060061b3603841315615a5e57600080fd5b828752615a70838801828c850161597b565b92505050615a7f888301615970565b6001600160a01b03168886015281870135878601526060615aa1818401614a10565b63ffffffff16908601526080615ab8838201614a10565b63ffffffff169501949094525092850192908501906001016159f5565b509098975050505050505050565b600061ffff80831681811415615afb57615afb615494565b6001019392505050565b634e487b7160e01b600052603160045260246000fdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47424c535369676e6174757265436865636b65722e636865636b5369676e617475a264697066735822122060e93a87fdad92cdcbfc454e21714d03e59852f475b055b3e7df4c8a7e88a6b764736f6c634300080c0033000000000000000000000000055733000064333caddbc92763c58bf0192ffebf000000000000000000000000acc1fb458a1317e886db376fc8141540537e68fe0000000000000000000000001ea7d160d325b289bf981e0d7ab6bf3261a0fff20000000000000000000000000b3ee1adc2944dccbb817f7d77915c7d38f7b858", + "nonce": "0x26e", + "chainId": "0x4268" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x5b05a7", + "logs": [ + { + "address": "0x60e6f7de65a99e0d4c953fe0792b6b5f34de6801", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xffc4a76e0a092e93bfad6d71080537171ac714818fa873fe4c0a506e334138f6", + "blockNumber": "0x216353", + "transactionHash": "0xe5b46c0a568e266b3573babc28280a5120bafc12e12dfd0d91c09b38a3d32753", + "transactionIndex": "0xa", + "logIndex": "0x13", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000200000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xe5b46c0a568e266b3573babc28280a5120bafc12e12dfd0d91c09b38a3d32753", + "transactionIndex": "0xa", + "blockHash": "0xffc4a76e0a092e93bfad6d71080537171ac714818fa873fe4c0a506e334138f6", + "blockNumber": "0x216353", + "gasUsed": "0x4eeb3c", + "effectiveGasPrice": "0x1e5e44", + "from": "0x31cc55d177824193a5fa2bf34da8afafbd366111", + "to": null, + "contractAddress": "0x60e6f7de65a99e0d4c953fe0792b6b5f34de6801" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1724391911, + "chain": 17000, + "commit": "1baad5f" +} \ No newline at end of file diff --git a/contracts/broadcast/MachServiceManagerImplDeployer.s.sol/17000/run-latest.json b/contracts/broadcast/MachServiceManagerImplDeployer.s.sol/17000/run-latest.json index cc8f29f..de8ef1d 100644 --- a/contracts/broadcast/MachServiceManagerImplDeployer.s.sol/17000/run-latest.json +++ b/contracts/broadcast/MachServiceManagerImplDeployer.s.sol/17000/run-latest.json @@ -1,22 +1,23 @@ { "transactions": [ { - "hash": "0x41023524e071f1f4837fd29f3aa44205795e1545684c90047d47ee3c50402bc3", + "hash": "0xe5b46c0a568e266b3573babc28280a5120bafc12e12dfd0d91c09b38a3d32753", "transactionType": "CREATE", "contractName": "MachServiceManager", - "contractAddress": "0xebf02940b63a82adba4b0fd5cdc4bc3af0bb37db", + "contractAddress": "0x60e6f7de65a99e0d4c953fe0792b6b5f34de6801", "function": null, "arguments": [ "0x055733000064333CaDDbC92763c58BF0192fFeBf", + "0xAcc1fb458a1317E886dB376Fc8141540537E68fE", "0x1eA7D160d325B289bF981e0D7aB6Bf3261a0FFf2", "0x0b3eE1aDc2944DCcBb817f7d77915C7d38F7B858" ], "transaction": { - "from": "0x4700e6415660694e4a441f490f097471d4624c00", - "gas": "0x6041ff", + "from": "0x31cc55d177824193a5fa2bf34da8afafbd366111", + "gas": "0x66905a", "value": "0x0", - "input": "0x6101606040523480156200001257600080fd5b50604051620059b7380380620059b78339810160408190526200003591620002da565b6001600160a01b0380841660c052808316608052811660a052818381836200005c620001ff565b5050506001600160a01b03811660e081905260408051636830483560e01b815290516368304835916004808201926020929091908290030181865afa158015620000aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d091906200032e565b6001600160a01b0316610100816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000129573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014f91906200032e565b6001600160a01b0316610120816001600160a01b031681525050610100516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d191906200032e565b6001600160a01b0316610140525060cb805460ff19166001179055620001f6620001ff565b50505062000355565b603454610100900460ff16156200026c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60345460ff9081161015620002bf576034805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002d757600080fd5b50565b600080600060608486031215620002f057600080fd5b8351620002fd81620002c1565b60208501519093506200031081620002c1565b60408501519092506200032381620002c1565b809150509250925092565b6000602082840312156200034157600080fd5b81516200034e81620002c1565b9392505050565b60805160a05160c05160e05161010051610120516101405161556d6200044a600039600081816106010152611ebc015260008181610459015261209e0152600081816104800152818161227401526124360152600081816104cd0152818161125d01528181611b8701528181611d1f0152611f590152600081816104a4015281816127da01528181612a160152612ac8015260008181610f70015281816110cb0152818161116201528181612d1001528181612e930152612f32015260008181610d9b01528181610e2a01528181610eaa0152818161272a015281816129ae01528181612c4e0152612dee015261556d6000f3fe608060405234801561001057600080fd5b506004361061027f5760003560e01c80636efb46361161015c578063b98d0908116100ce578063edaa410e11610087578063edaa410e1461063e578063ef02445814610651578063f2fde38b14610659578063f90e47071461066c578063f98f5b921461067f578063fabc1cbc1461069257600080fd5b8063b98d0908146105df578063c6a2aac8146105ec578063cf8e629a146105f4578063df5cf723146105fc578063e0e387ab14610623578063e481af9d1461063657600080fd5b80639926ee7d116101205780639926ee7d146105505780639d81ceba14610563578063a364f4da14610583578063a7cd52cb14610596578063a98fb355146105b9578063b733cc77146105cc57600080fd5b80636efb4636146104ef578063715018a614610510578063886f1195146105185780638da5cb5b1461052b57806394c8e4ff1461053c57600080fd5b8063432de9c8116101f55780635ac86ab7116101b95780635ac86ab71461041f5780635c975abb146104425780635df4594614610454578063683048351461047b5780636b3aa72e146104a25780636d14a987146104c857600080fd5b8063432de9c8146103985780634ab39dcd146103ab5780634c6b05d9146103be5780634deabc21146103f1578063595c6a671461041757600080fd5b80632f640a09116102475780632f640a091461031957806333cfb7b71461032c57806339bc68e71461034c5780633deebb691461035f578063416c7e5e14610372578063429d5bf01461038557600080fd5b80630898f07f1461028457806310d67a2f14610299578063136439dd146102ac578063171f1d5b146102bf57806322758a4a146102ee575b600080fd5b6102976102923660046149d6565b6106a5565b005b6102976102a7366004614a56565b6109e9565b6102976102ba366004614a73565b610a9c565b6102d26102cd366004614a8c565b610bdb565b6040805192151583529015156020830152015b60405180910390f35b600854610301906001600160a01b031681565b6040516001600160a01b0390911681526020016102e5565b610297610327366004614a56565b610d65565b61033f61033a366004614a56565b610d76565b6040516102e59190614add565b600554610301906001600160a01b031681565b61029761036d366004614b38565b611245565b610297610380366004614b68565b61125b565b610297610393366004614b94565b6113d1565b6102976103a6366004614bfc565b61144c565b6102976103b9366004614c3d565b611584565b6103e16103cc366004614a73565b60006020819052908152604090205460ff1681565b60405190151581526020016102e5565b60055461040590600160a81b900460ff1681565b60405160ff90911681526020016102e5565b61029761170d565b6103e161042d366004614b94565b60fe54600160ff9092169190911b9081161490565b60fe545b6040519081526020016102e5565b6103017f000000000000000000000000000000000000000000000000000000000000000081565b6103017f000000000000000000000000000000000000000000000000000000000000000081565b7f0000000000000000000000000000000000000000000000000000000000000000610301565b6103017f000000000000000000000000000000000000000000000000000000000000000081565b6105026104fd366004614cd4565b6117d4565b6040516102e5929190614dc7565b6102976126eb565b60fd54610301906001600160a01b031681565b6067546001600160a01b0316610301565b6005546103e190600160a01b900460ff1681565b61029761055e366004614e67565b6126ff565b610576610571366004614f11565b61287b565b6040516102e59190614f3d565b610297610591366004614a56565b612983565b6103e16105a4366004614a56565b60046020526000908152604090205460ff1681565b6102976105c7366004614f75565b612aa9565b6104466105da366004614a73565b612b32565b60cb546103e19060ff1681565b610297612b4f565b610297612bc0565b6103017f000000000000000000000000000000000000000000000000000000000000000081565b6103e1610631366004614fc5565b612c29565b61033f612c48565b61029761064c366004614fc5565b613011565b610446606481565b610297610667366004614a56565b6130c4565b61029761067a366004614bfc565b61313a565b61029761068d366004614a56565b613243565b6102976106a0366004614a73565b613254565b60fe54156106ce5760405162461bcd60e51b81526004016106c590614fe7565b60405180910390fd5b6005546001600160a01b0316336001600160a01b0316146107025760405163fc4a01bd60e01b815260040160405180910390fd5b608082013560008181526020819052604090205460ff166107365760405163daf4a8a360e01b815260040160405180910390fd5b32331461075657604051636edaef2f60e11b815260040160405180910390fd5b608083013560009081526006602052604090206107749084356133b0565b156107925760405163939bc9df60e01b815260040160405180910390fd5b436107a3608085016060860161501e565b63ffffffff16106107c75760405163c15ef5b560e01b815260040160405180910390fd5b60006107d2846133c8565b90506107e16040850185615039565b90506107f06020860186615039565b9050146108105760405163c9df75a560e01b815260040160405180910390fd5b6000610839826108236020880188615039565b61083360808a0160608b0161501e565b886117d4565b50905060005b61084c6040870187615039565b905081101561096c5760006108646040880188615039565b838181106108745761087461507f565b919091013560f81c91505060648111156108a15760405163048278b760e41b815260040160405180910390fd5b60055460ff600160a81b909104811690821610156108d25760405163bbf727c160e01b815260040160405180910390fd5b8060ff16836020015183815181106108ec576108ec61507f565b60200260200101516108fe91906150ab565b6001600160601b031660648460000151848151811061091f5761091f61507f565b60200260200101516001600160601b031661093a91906150da565b101561095957604051633916714960e21b815260040160405180910390fd5b5080610964816150f9565b91505061083f565b506080850135600090815260016020526040812061098b908735613417565b9050806109ab5760405163f411c32760e01b815260040160405180910390fd5b6040518635815283907ffdda6f7d4825a4f1e4e97b50a26a69a8bcc3f4fcb1113cc14ce8e7098ca636659060200160405180910390a2505050505050565b60fd60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a609190615114565b6001600160a01b0316336001600160a01b031614610a905760405162461bcd60e51b81526004016106c590615131565b610a9981613423565b50565b60fd5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b08919061517b565b610b245760405162461bcd60e51b81526004016106c590615198565b60fe5481811614610b9d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016106c5565b60fe81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610c2357610c2361507f565b60200201518951600160200201518a60200151600060028110610c4857610c4861507f565b60200201518b60200151600160028110610c6457610c6461507f565b602090810291909101518c518d830151604051610cc19a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610ce491906151e0565b9050610d57610cfd610cf6888461351a565b86906135b1565b610d05613645565b610d4d610d3e85610d38604080518082018252600080825260209182015281518083019092526001825260029082015290565b9061351a565b610d478c613705565b906135b1565b886201d4c0613795565b909890975095505050505050565b610d6d6139b9565b610a9981613a13565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610de2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e069190615202565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610e71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e95919061521b565b90506001600160c01b0381161580610f2f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2a9190615244565b60ff16155b15610f4b57505060408051600081526020810190915292915050565b6000610f5f826001600160c01b0316613a75565b90506000805b8251811015611035577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610faf57610faf61507f565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610ff3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110179190615202565b6110219083615261565b91508061102d816150f9565b915050610f65565b506000816001600160401b03811115611050576110506145b8565b604051908082528060200260200182016040528015611079578160200160208202803683370190505b5090506000805b845181101561123857600085828151811061109d5761109d61507f565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015611112573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111369190615202565b905060005b81811015611222576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa1580156111b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d49190615290565b600001518686815181106111ea576111ea61507f565b6001600160a01b03909216602092830291909101909101528461120c816150f9565b955050808061121a906150f9565b91505061113b565b5050508080611230906150f9565b915050611080565b5090979650505050505050565b61124d6139b9565b6112578282613b37565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dd9190615114565b6001600160a01b0316336001600160a01b0316146113895760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a4016106c5565b60cb805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc906020015b60405180910390a150565b6113d96139b9565b60648160ff1611156113fe5760405163048278b760e41b815260040160405180910390fd5b6005805460ff60a81b1916600160a81b60ff8416908102919091179091556040519081527fc3acdc4f4bc283baa27c4207eb2c32954fbb26960847c9e15c2f7c8970134244906020016113c6565b6008546001600160a01b0316336001600160a01b0316146114805760405163b8088f8760e01b815260040160405180910390fd5b60005b8181101561157f57600083838381811061149f5761149f61507f565b90506020020160208101906114b49190614a56565b90506001600160a01b0381166114dd5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526004602052604090205460ff1615611517576040516302eeeca960e41b815260040160405180910390fd5b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527fdde65206cdee4ea27ef1b170724ba50b41ad09a3bf2dda12935fc40c4dbf6e75910160405180910390a150611578816150f9565b9050611483565b505050565b603454610100900460ff16158080156115a45750603454600160ff909116105b806115be5750303b1580156115be575060345460ff166001145b6116215760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106c5565b6034805460ff191660011790558015611644576034805461ff0019166101001790555b61164e8888613bdf565b61165786613cc5565b61166085613a13565b61166984613d30565b60005b828110156116a7576116978484838181106116895761168961507f565b905060200201356001613b37565b6116a0816150f9565b905061166c565b506005805461ffff60a01b191661420160a01b1790558015611703576034805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b60fd5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015611755573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611779919061517b565b6117955760405162461bcd60e51b81526004016106c590615198565b60001960fe81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b604080518082019091526060808252602082015260008461184b5760405162461bcd60e51b8152602060048201526037602482015260008051602061551883398151915260448201527f7265733a20656d7074792071756f72756d20696e70757400000000000000000060648201526084016106c5565b60408301515185148015611863575060a08301515185145b8015611873575060c08301515185145b8015611883575060e08301515185145b6118ed5760405162461bcd60e51b8152602060048201526041602482015260008051602061551883398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a4016106c5565b825151602084015151146119655760405162461bcd60e51b815260206004820152604460248201819052600080516020615518833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a4016106c5565b4363ffffffff168463ffffffff16106119d45760405162461bcd60e51b815260206004820152603c602482015260008051602061551883398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b0000000060648201526084016106c5565b6040805180820182526000808252602080830191909152825180840190935260608084529083015290866001600160401b03811115611a1557611a156145b8565b604051908082528060200260200182016040528015611a3e578160200160208202803683370190505b506020820152866001600160401b03811115611a5c57611a5c6145b8565b604051908082528060200260200182016040528015611a85578160200160208202803683370190505b50815260408051808201909152606080825260208201528560200151516001600160401b03811115611ab957611ab96145b8565b604051908082528060200260200182016040528015611ae2578160200160208202803683370190505b5081526020860151516001600160401b03811115611b0257611b026145b8565b604051908082528060200260200182016040528015611b2b578160200160208202803683370190505b5081602001819052506000611bfd8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051639aa1653d60e01b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169350639aa1653d925060048083019260209291908290030181865afa158015611bd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf89190615244565b613d8a565b905060005b876020015151811015611e9857611c4788602001518281518110611c2857611c2861507f565b6020026020010151805160009081526020918201519091526040902090565b83602001518281518110611c5d57611c5d61507f565b60209081029190910101528015611d1d576020830151611c7e6001836152cf565b81518110611c8e57611c8e61507f565b602002602001015160001c83602001518281518110611caf57611caf61507f565b602002602001015160001c11611d1d576040805162461bcd60e51b815260206004820152602481019190915260008051602061551883398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f7274656460648201526084016106c5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec635184602001518381518110611d6257611d6261507f565b60200260200101518b8b600001518581518110611d8157611d8161507f565b60200260200101516040518463ffffffff1660e01b8152600401611dbe9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611ddb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dff919061521b565b6001600160c01b031683600001518281518110611e1e57611e1e61507f565b602002602001018181525050611e84610cf6611e588486600001518581518110611e4a57611e4a61507f565b602002602001015116613e14565b8a602001518481518110611e6e57611e6e61507f565b6020026020010151613e3f90919063ffffffff16565b945080611e90816150f9565b915050611c02565b5050611ea383613f23565b60cb5490935060ff16600081611eba576000611f3c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3c9190615202565b905060005b8a8110156125ba57821561209c578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c428f8f86818110611f9857611f9861507f565b60405160e085901b6001600160e01b031916815292013560f81c600483015250602401602060405180830381865afa158015611fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffc9190615202565b6120069190615261565b1161209c5760405162461bcd60e51b8152602060048201526066602482015260008051602061551883398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c4016106c5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac8d8d848181106120dd576120dd61507f565b9050013560f81c60f81b60f81c8c8c60a0015185815181106121015761210161507f565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa15801561215d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218191906152e6565b6001600160401b0319166121a48a604001518381518110611c2857611c2861507f565b67ffffffffffffffff1916146122405760405162461bcd60e51b8152602060048201526061602482015260008051602061551883398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c4016106c5565b612270896040015182815181106122595761225961507f565b6020026020010151876135b190919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c568d8d848181106122b3576122b361507f565b9050013560f81c60f81b60f81c8c8c60c0015185815181106122d7576122d761507f565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612333573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123579190615311565b8560200151828151811061236d5761236d61507f565b6001600160601b039092166020928302919091018201528501518051829081106123995761239961507f565b6020026020010151856000015182815181106123b7576123b761507f565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a60200151518110156125a55761242f866000015182815181106124015761240161507f565b60200260200101518f8f8681811061241b5761241b61507f565b600192013560f81c9290921c811614919050565b15612593577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae8f8f868181106124755761247561507f565b9050013560f81c60f81b60f81c8e896020015185815181106124995761249961507f565b60200260200101518f60e0015188815181106124b7576124b761507f565b602002602001015187815181106124d0576124d061507f565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612534573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125589190615311565b875180518590811061256c5761256c61507f565b60200260200101818151612580919061532c565b6001600160601b03169052506001909101905b8061259d816150f9565b9150506123db565b505080806125b2906150f9565b915050611f41565b5050506000806125d48c868a606001518b60800151610bdb565b91509150816126455760405162461bcd60e51b8152602060048201526043602482015260008051602061551883398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a4016106c5565b806126a65760405162461bcd60e51b8152602060048201526039602482015260008051602061551883398151915260448201527f7265733a207369676e617475726520697320696e76616c69640000000000000060648201526084016106c5565b505060008782602001516040516020016126c1929190615354565b60408051808303601f190181529190528051602090910120929b929a509198505050505050505050565b6126f36139b9565b6126fd6000613fbe565b565b60fe541561271f5760405162461bcd60e51b81526004016106c590614fe7565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146127675760405162461bcd60e51b81526004016106c59061539c565b600554600160a01b900460ff16801561279957506001600160a01b03821660009081526004602052604090205460ff16155b156127b757604051634414c63360e01b815260040160405180910390fd5b6127c2600283614010565b50604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906128119085908590600401615461565b600060405180830381600087803b15801561282b57600080fd5b505af115801561283f573d6000803e3d6000fd5b50506040516001600160a01b03851692507fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d9150600090a25050565b60008381526001602052604081206060919061289690614025565b90508084106128b8576040516392c4425960e01b815260040160405180910390fd5b60006128c48486615261565b9050818111156128d15750805b60006128dd86836152cf565b6001600160401b038111156128f4576128f46145b8565b60405190808252806020026020018201604052801561291d578160200160208202803683370190505b509050855b82811015612978576000888152600160205260409020612942908261402f565b8261294d89846152cf565b8151811061295d5761295d61507f565b6020908102919091010152612971816150f9565b9050612922565b509695505050505050565b60fe54156129a35760405162461bcd60e51b81526004016106c590614fe7565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146129eb5760405162461bcd60e51b81526004016106c59061539c565b6129f660028261403b565b506040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b158015612a5a57600080fd5b505af1158015612a6e573d6000803e3d6000fd5b50506040516001600160a01b03841692507f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d9150600090a250565b612ab16139b9565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb35590612afd9084906004016154ac565b600060405180830381600087803b158015612b1757600080fd5b505af1158015612b2b573d6000803e3d6000fd5b5050505050565b6000818152600160205260408120612b4990614025565b92915050565b612b576139b9565b600554600160a01b900460ff1615612b8257604051637952fbad60e11b815260040160405180910390fd5b6005805460ff60a01b1916600160a01b1790556040517f8a943acd5f4e6d3df7565a4a08a93f6b04cc31bb6c01ca4aef7abd6baf455ec390600090a1565b612bc86139b9565b600554600160a01b900460ff16612bf157604051625ecddb60e01b815260040160405180910390fd5b6005805460ff60a01b191690556040517f2d35c8d348a345fd7b3b03b7cfcf7ad0b60c2d46742d5ca536342e4185becb0790600090a1565b6000828152600160205260408120612c4190836133b0565b9392505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cce9190615244565b60ff16905080612cec57505060408051600081526020810190915290565b6000805b82811015612da157604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612d5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d839190615202565b612d8d9083615261565b915080612d99816150f9565b915050612cf0565b506000816001600160401b03811115612dbc57612dbc6145b8565b604051908082528060200260200182016040528015612de5578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6e9190615244565b60ff1681101561300757604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f069190615202565b905060005b81811015612ff2576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa49190615290565b60000151858581518110612fba57612fba61507f565b6001600160a01b039092166020928302919091019091015283612fdc816150f9565b9450508080612fea906150f9565b915050612f0b565b50508080612fff906150f9565b915050612dec565b5090949350505050565b600082815260208190526040902054829060ff166130425760405163daf4a8a360e01b815260040160405180910390fd5b61304a6139b9565b60008381526001602052604081206130629084614050565b905080156130be5760008481526006602052604090206130829084613417565b506040805184815233602082015281517f1bdeffc0337373bf2f6fd4219080133eeaaee0554206d9bb24a019d96973c1eb929181900390910190a15b50505050565b6130cc6139b9565b6001600160a01b0381166131315760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106c5565b610a9981613fbe565b6008546001600160a01b0316336001600160a01b03161461316e5760405163b8088f8760e01b815260040160405180910390fd5b60005b8181101561157f57600083838381811061318d5761318d61507f565b90506020020160208101906131a29190614a56565b6001600160a01b03811660009081526004602052604090205490915060ff166131de57604051634414c63360e01b815260040160405180910390fd5b6001600160a01b038116600081815260046020908152604091829020805460ff1916905590519182527f8560daa191dd8e6fba276b053006b3990c46c94b842f85490f52c49b15cfe5cb910160405180910390a15061323c816150f9565b9050613171565b61324b6139b9565b610a9981613d30565b60fd60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132cb9190615114565b6001600160a01b0316336001600160a01b0316146132fb5760405162461bcd60e51b81526004016106c590615131565b60fe5419811960fe541916146133795760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016106c5565b60fe81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610bd0565b60008181526001830160205260408120541515612c41565b60006133d38261405c565b60408051825160208083019190915283015163ffffffff16818301529101516060820152608001604051602081830303815290604052805190602001209050919050565b6000612c4183836140bb565b6001600160a01b0381166134b15760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016106c5565b60fd54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fd80546001600160a01b0319166001600160a01b0392909216919091179055565b60408051808201909152600080825260208201526135366144de565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156135695761356b565bfe5b50806135a95760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016106c5565b505092915050565b60408051808201909152600080825260208201526135cd6144fc565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156135695750806135a95760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016106c5565b61364d61451a565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820190915260008082526020820152600080806137356000805160206154f8833981519152866151e0565b90505b6137418161410a565b90935091506000805160206154f883398151915282830983141561377b576040805180820190915290815260208101919091529392505050565b6000805160206154f8833981519152600182089050613738565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906137c761453f565b60005b600281101561398c5760006137e08260066150da565b90508482600281106137f4576137f461507f565b60200201515183613806836000615261565b600c81106138165761381661507f565b602002015284826002811061382d5761382d61507f565b602002015160200151838260016138449190615261565b600c81106138545761385461507f565b602002015283826002811061386b5761386b61507f565b602002015151518361387e836002615261565b600c811061388e5761388e61507f565b60200201528382600281106138a5576138a561507f565b60200201515160016020020151836138be836003615261565b600c81106138ce576138ce61507f565b60200201528382600281106138e5576138e561507f565b6020020151602001516000600281106139005761390061507f565b602002015183613911836004615261565b600c81106139215761392161507f565b60200201528382600281106139385761393861507f565b6020020151602001516001600281106139535761395361507f565b602002015183613964836005615261565b600c81106139745761397461507f565b60200201525080613984816150f9565b9150506137ca565b5061399561455e565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6067546001600160a01b031633146126fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106c5565b600580546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f175f27847b3568e0da876ffca3dc0bb52db4e6556346aedb530c6fe86610da2791015b60405180910390a15050565b6060600080613a8384613e14565b61ffff166001600160401b03811115613a9e57613a9e6145b8565b6040519080825280601f01601f191660200182016040528015613ac8576020820181803683370190505b5090506000805b825182108015613ae0575061010081105b15613007576001811b935085841615613b27578060f81b838381518110613b0957613b0961507f565b60200101906001600160f81b031916908160001a9053508160010191505b613b30816150f9565b9050613acf565b6001821015613b595760405163daf4a8a360e01b815260040160405180910390fd5b60008281526020819052604090205460ff1615158115151415613b8f57604051631cf3d59360e31b815260040160405180910390fd5b60008281526020818152604091829020805460ff19168415159081179091558251858152918201527fe6dc5430aa4f5f1f54e9c1a3698de870c829afe22acf2737d45f109b82881b1e9101613a69565b60fd546001600160a01b0316158015613c0057506001600160a01b03821615155b613c825760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016106c5565b60fe81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261125782613423565b603454610100900460ff166131315760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016106c5565b600880546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f1d7f4da50d8af7a6cea3e56e235c952f5a92d4c862da2d587f7b67f6d0156bb29101613a69565b600080613d968461418c565b9050808360ff166001901b11612c415760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c75650060648201526084016106c5565b6000805b8215612b4957613e296001846152cf565b9092169180613e37816154bf565b915050613e18565b60408051808201909152600080825260208201526102008261ffff1610613e9b5760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b60448201526064016106c5565b8161ffff1660011415613eaf575081612b49565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613f1857600161ffff871660ff83161c81161415613efb57613ef884846135b1565b93505b613f0583846135b1565b92506201fffe600192831b169101613ecb565b509195945050505050565b60408051808201909152600080825260208201528151158015613f4857506020820151155b15613f66575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206154f88339815191528460200151613f9991906151e0565b613fb1906000805160206154f88339815191526152cf565b905292915050565b919050565b606780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000612c41836001600160a01b0384166140bb565b6000612b49825490565b6000612c418383614319565b6000612c41836001600160a01b038416614343565b6000612c418383614343565b60408051606081018252600080825260208201819052918101919091526040518060600160405280836000013581526020018360600160208101906140a1919061501e565b63ffffffff16815260200183608001358152509050919050565b600081815260018301602052604081205461410257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155612b49565b506000612b49565b600080806000805160206154f883398151915260036000805160206154f8833981519152866000805160206154f8833981519152888909090890506000614180827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206154f8833981519152614436565b91959194509092505050565b6000610100825111156142155760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016106c5565b815161422357506000919050565b600080836000815181106142395761423961507f565b0160200151600160f89190911c81901b92505b8451811015614310578481815181106142675761426761507f565b0160200151600160f89190911c1b91508282116142fc5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016106c5565b91811791614309816150f9565b905061424c565b50909392505050565b60008260000182815481106143305761433061507f565b9060005260206000200154905092915050565b6000818152600183016020526040812054801561442c5760006143676001836152cf565b855490915060009061437b906001906152cf565b90508181146143e057600086600001828154811061439b5761439b61507f565b90600052602060002001549050808760000184815481106143be576143be61507f565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806143f1576143f16154e1565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612b49565b6000915050612b49565b60008061444161455e565b61444961457c565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280156135695750826144d35760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c75726500000000000060448201526064016106c5565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061452d61459a565b815260200161453a61459a565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156145f0576145f06145b8565b60405290565b60405161010081016001600160401b03811182821017156145f0576145f06145b8565b604051606081016001600160401b03811182821017156145f0576145f06145b8565b604051601f8201601f191681016001600160401b0381118282101715614663576146636145b8565b604052919050565b60006001600160401b03821115614684576146846145b8565b5060051b60200190565b803563ffffffff81168114613fb957600080fd5b600082601f8301126146b357600080fd5b813560206146c86146c38361466b565b61463b565b82815260059290921b840181019181810190868411156146e757600080fd5b8286015b84811015612978576146fc8161468e565b83529183019183016146eb565b60006040828403121561471b57600080fd5b6147236145ce565b9050813581526020820135602082015292915050565b600082601f83011261474a57600080fd5b8135602061475a6146c38361466b565b82815260069290921b8401810191818101908684111561477957600080fd5b8286015b848110156129785761478f8882614709565b83529183019160400161477d565b600082601f8301126147ae57600080fd5b6147b66145ce565b8060408401858111156147c857600080fd5b845b818110156147e25780358452602093840193016147ca565b509095945050505050565b6000608082840312156147ff57600080fd5b6148076145ce565b9050614813838361479d565b8152614822836040840161479d565b602082015292915050565b600082601f83011261483e57600080fd5b8135602061484e6146c38361466b565b82815260059290921b8401810191818101908684111561486d57600080fd5b8286015b848110156129785780356001600160401b038111156148905760008081fd5b61489e8986838b01016146a2565b845250918301918301614871565b600061018082840312156148bf57600080fd5b6148c76145f6565b905081356001600160401b03808211156148e057600080fd5b6148ec858386016146a2565b8352602084013591508082111561490257600080fd5b61490e85838601614739565b6020840152604084013591508082111561492757600080fd5b61493385838601614739565b604084015261494585606086016147ed565b60608401526149578560e08601614709565b608084015261012084013591508082111561497157600080fd5b61497d858386016146a2565b60a084015261014084013591508082111561499757600080fd5b6149a3858386016146a2565b60c08401526101608401359150808211156149bd57600080fd5b506149ca8482850161482d565b60e08301525092915050565b600080604083850312156149e957600080fd5b82356001600160401b0380821115614a0057600080fd5b9084019060a08287031215614a1457600080fd5b90925060208401359080821115614a2a57600080fd5b50614a37858286016148ac565b9150509250929050565b6001600160a01b0381168114610a9957600080fd5b600060208284031215614a6857600080fd5b8135612c4181614a41565b600060208284031215614a8557600080fd5b5035919050565b6000806000806101208587031215614aa357600080fd5b84359350614ab48660208701614709565b9250614ac386606087016147ed565b9150614ad28660e08701614709565b905092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015614b1e5783516001600160a01b031683529284019291840191600101614af9565b50909695505050505050565b8015158114610a9957600080fd5b60008060408385031215614b4b57600080fd5b823591506020830135614b5d81614b2a565b809150509250929050565b600060208284031215614b7a57600080fd5b8135612c4181614b2a565b60ff81168114610a9957600080fd5b600060208284031215614ba657600080fd5b8135612c4181614b85565b60008083601f840112614bc357600080fd5b5081356001600160401b03811115614bda57600080fd5b6020830191508360208260051b8501011115614bf557600080fd5b9250929050565b60008060208385031215614c0f57600080fd5b82356001600160401b03811115614c2557600080fd5b614c3185828601614bb1565b90969095509350505050565b600080600080600080600060c0888a031215614c5857600080fd5b8735614c6381614a41565b9650602088013595506040880135614c7a81614a41565b94506060880135614c8a81614a41565b93506080880135614c9a81614a41565b925060a08801356001600160401b03811115614cb557600080fd5b614cc18a828b01614bb1565b989b979a50959850939692959293505050565b600080600080600060808688031215614cec57600080fd5b8535945060208601356001600160401b0380821115614d0a57600080fd5b818801915088601f830112614d1e57600080fd5b813581811115614d2d57600080fd5b896020828501011115614d3f57600080fd5b6020830196509450614d536040890161468e565b93506060880135915080821115614d6957600080fd5b50614d76888289016148ac565b9150509295509295909350565b600081518084526020808501945080840160005b83811015614dbc5781516001600160601b031687529582019590820190600101614d97565b509495945050505050565b6040815260008351604080840152614de26080840182614d83565b90506020850151603f19848303016060850152614dff8282614d83565b925050508260208301529392505050565b60006001600160401b03831115614e2957614e296145b8565b614e3c601f8401601f191660200161463b565b9050828152838383011115614e5057600080fd5b828260208301376000602084830101529392505050565b60008060408385031215614e7a57600080fd5b8235614e8581614a41565b915060208301356001600160401b0380821115614ea157600080fd5b9084019060608287031215614eb557600080fd5b614ebd614619565b823582811115614ecc57600080fd5b83019150601f82018713614edf57600080fd5b614eee87833560208501614e10565b815260208301356020820152604083013560408201528093505050509250929050565b600080600060608486031215614f2657600080fd5b505081359360208301359350604090920135919050565b6020808252825182820181905260009190848201906040850190845b81811015614b1e57835183529284019291840191600101614f59565b600060208284031215614f8757600080fd5b81356001600160401b03811115614f9d57600080fd5b8201601f81018413614fae57600080fd5b614fbd84823560208401614e10565b949350505050565b60008060408385031215614fd857600080fd5b50508035926020909101359150565b6020808252601c908201527f5061757361626c653a20636f6e74726163742069732070617573656400000000604082015260600190565b60006020828403121561503057600080fd5b612c418261468e565b6000808335601e1984360301811261505057600080fd5b8301803591506001600160401b0382111561506a57600080fd5b602001915036819003821315614bf557600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160601b03808316818516818304811182151516156150d1576150d1615095565b02949350505050565b60008160001904831182151516156150f4576150f4615095565b500290565b600060001982141561510d5761510d615095565b5060010190565b60006020828403121561512657600080fd5b8151612c4181614a41565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561518d57600080fd5b8151612c4181614b2a565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000826151fd57634e487b7160e01b600052601260045260246000fd5b500690565b60006020828403121561521457600080fd5b5051919050565b60006020828403121561522d57600080fd5b81516001600160c01b0381168114612c4157600080fd5b60006020828403121561525657600080fd5b8151612c4181614b85565b6000821982111561527457615274615095565b500190565b80516001600160601b0381168114613fb957600080fd5b6000604082840312156152a257600080fd5b6152aa6145ce565b82516152b581614a41565b81526152c360208401615279565b60208201529392505050565b6000828210156152e1576152e1615095565b500390565b6000602082840312156152f857600080fd5b815167ffffffffffffffff1981168114612c4157600080fd5b60006020828403121561532357600080fd5b612c4182615279565b60006001600160601b038381169083168181101561534c5761534c615095565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b8381101561538f57815185529382019390820190600101615373565b5092979650505050505050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b8181101561543a5760208185018101518683018201520161541e565b8181111561544c576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b038316815260406020820152600082516060604084015261548b60a0840182615414565b90506020840151606084015260408401516080840152809150509392505050565b602081526000612c416020830184615414565b600061ffff808316818114156154d7576154d7615095565b6001019392505050565b634e487b7160e01b600052603160045260246000fdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47424c535369676e6174757265436865636b65722e636865636b5369676e617475a2646970667358221220156dd46e00be638a8195c9ba29fbffe2e58586095628e1b35ebd5e5e4e218d1a64736f6c634300080c0033000000000000000000000000055733000064333caddbc92763c58bf0192ffebf0000000000000000000000001ea7d160d325b289bf981e0d7ab6bf3261a0fff20000000000000000000000000b3ee1adc2944dccbb817f7d77915c7d38f7b858", - "nonce": "0xa7", + "input": "0x6101806040523480156200001257600080fd5b5060405162006013380380620060138339810160408190526200003591620002e5565b6001600160a01b0380851660805280841660a05280831660c052811660e0528184848284620000636200020a565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e791906200034d565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000140573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016691906200034d565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e891906200034d565b6001600160a01b03166101605250620002006200020a565b5050505062000374565b603454610100900460ff1615620002775760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60345460ff9081161015620002ca576034805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002e257600080fd5b50565b60008060008060808587031215620002fc57600080fd5b84516200030981620002cc565b60208601519094506200031c81620002cc565b60408601519093506200032f81620002cc565b60608601519092506200034281620002cc565b939692955090935050565b6000602082840312156200036057600080fd5b81516200036d81620002cc565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051615b91620004826000396000818161065b0152611dcc0152600081816104950152611fae0152600081816104bc0152818161218401526123460152600081816105090152818161146601528181611a9701528181611c2f0152611e69015260008181611168015281816112c30152818161135a01528181612d0301528181612e860152612f25015260008181610f9301528181611022015281816110a2015281816127dd01528181612a0e01528181612c410152612de10152600081816133e00152818161349c01526135880152600081816104e00152818161286e01528181612a6a0152612ae90152615b916000f3fe608060405234801561001057600080fd5b50600436106102bb5760003560e01c806372faa8df11610182578063c6a2aac8116100e9578063edaa410e116100a2578063f98f5b921161007c578063f98f5b92146106c6578063fabc1cbc146106d9578063fc299dee146106ec578063fce36c7d146106ff57600080fd5b8063edaa410e14610698578063ef024458146106ab578063f2fde38b146106b357600080fd5b8063c6a2aac814610633578063cf8e629a1461063b578063d190741914610643578063df5cf72314610656578063e0e387ab1461067d578063e481af9d1461069057600080fd5b80639926ee7d1161013b5780639926ee7d146105ba5780639d81ceba146105cd578063a364f4da146105ed578063a98fb35514610600578063b733cc7714610613578063b98d09081461062657600080fd5b806372faa8df1461055457806375ccc13214610567578063886f11951461057a5780638da5cb5b1461058d57806394c8e4ff1461059e5780639925378f146105b257600080fd5b8063429d5bf0116102265780635df45946116101df5780635df459461461049057806368304835146104b75780636b3aa72e146104de5780636d14a987146105045780636efb46361461052b578063715018a61461054c57600080fd5b8063429d5bf0146103e75780634c6b05d9146103fa5780634deabc211461042d578063595c6a67146104535780635ac86ab71461045b5780635c975abb1461047e57600080fd5b80632f640a09116102785780632f640a091461036857806333cfb7b71461037b57806339bc68e71461039b5780633bc28c8c146103ae5780633deebb69146103c1578063416c7e5e146103d457600080fd5b80630898f07f146102c05780630d1bc893146102d557806310d67a2f146102e8578063136439dd146102fb578063171f1d5b1461030e57806322758a4a1461033d575b600080fd5b6102d36102ce366004614d58565b610712565b005b6102d36102e3366004614e23565b610a56565b6102d36102f6366004614ecc565b610be1565b6102d3610309366004614ee9565b610c94565b61032161031c366004614f02565b610dd3565b6040805192151583529015156020830152015b60405180910390f35b600854610350906001600160a01b031681565b6040516001600160a01b039091168152602001610334565b6102d3610376366004614ecc565b610f5d565b61038e610389366004614ecc565b610f6e565b6040516103349190614f53565b600554610350906001600160a01b031681565b6102d36103bc366004614ecc565b61143d565b6102d36103cf366004614fae565b61144e565b6102d36103e2366004614fde565b611464565b6102d36103f536600461500a565b61159b565b61041d610408366004614ee9565b60006020819052908152604090205460ff1681565b6040519015158152602001610334565b60055461044190600160a81b900460ff1681565b60405160ff9091168152602001610334565b6102d361161d565b61041d61046936600461500a565b60fe54600160ff9092169190911b9081161490565b60fe545b604051908152602001610334565b6103507f000000000000000000000000000000000000000000000000000000000000000081565b6103507f000000000000000000000000000000000000000000000000000000000000000081565b7f0000000000000000000000000000000000000000000000000000000000000000610350565b6103507f000000000000000000000000000000000000000000000000000000000000000081565b61053e610539366004615027565b6116e4565b60405161033492919061511a565b6102d36125fb565b6102d3610562366004615163565b61260f565b61041d610575366004614ecc565b61278e565b60fd54610350906001600160a01b031681565b6067546001600160a01b0316610350565b60055461041d90600160a01b900460ff1681565b6104826127a1565b6102d36105c8366004615225565b6127b2565b6105e06105db3660046152cf565b6128db565b60405161033491906152fb565b6102d36105fb366004614ecc565b6129e3565b6102d361060e366004615333565b612aca565b610482610621366004614ee9565b612b1e565b60cb5461041d9060ff1681565b6102d3612b35565b6102d3612ba6565b610350610651366004614ee9565b612c0f565b6103507f000000000000000000000000000000000000000000000000000000000000000081565b61041d61068b366004615383565b612c1c565b61038e612c3b565b6102d36106a6366004615383565b613004565b610482606481565b6102d36106c1366004614ecc565b6130b1565b6102d36106d4366004614ecc565b613127565b6102d36106e7366004614ee9565b613138565b609954610350906001600160a01b031681565b6102d361070d3660046153a5565b613294565b60fe541561073b5760405162461bcd60e51b8152600401610732906153e6565b60405180910390fd5b6005546001600160a01b0316336001600160a01b03161461076f5760405163fc4a01bd60e01b815260040160405180910390fd5b608082013560008181526020819052604090205460ff166107a35760405163daf4a8a360e01b815260040160405180910390fd5b3233146107c357604051636edaef2f60e11b815260040160405180910390fd5b608083013560009081526006602052604090206107e19084356135bf565b156107ff5760405163939bc9df60e01b815260040160405180910390fd5b43610810608085016060860161541d565b63ffffffff16106108345760405163c15ef5b560e01b815260040160405180910390fd5b600061083f846135d7565b905061084e6040850185615438565b905061085d6020860186615438565b90501461087d5760405163c9df75a560e01b815260040160405180910390fd5b60006108a6826108906020880188615438565b6108a060808a0160608b0161541d565b886116e4565b50905060005b6108b96040870187615438565b90508110156109d95760006108d16040880188615438565b838181106108e1576108e161547e565b919091013560f81c915050606481111561090e5760405163048278b760e41b815260040160405180910390fd5b60055460ff600160a81b9091048116908216101561093f5760405163bbf727c160e01b815260040160405180910390fd5b8060ff16836020015183815181106109595761095961547e565b602002602001015161096b91906154aa565b6001600160601b031660648460000151848151811061098c5761098c61547e565b60200260200101516001600160601b03166109a791906154d9565b10156109c657604051633916714960e21b815260040160405180910390fd5b50806109d1816154f8565b9150506108ac565b50608085013560009081526001602052604081206109f8908735613626565b905080610a185760405163f411c32760e01b815260040160405180910390fd5b6040518635815283907ffdda6f7d4825a4f1e4e97b50a26a69a8bcc3f4fcb1113cc14ce8e7098ca636659060200160405180910390a2505050505050565b603454610100900460ff1615808015610a765750603454600160ff909116105b80610a905750303b158015610a90575060345460ff166001145b610af35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610732565b6034805460ff191660011790558015610b16576034805461ff0019166101001790555b610b208989613632565b610b2a8787613718565b610b3385613795565b610b3c846137f7565b60005b82811015610b7a57610b6a848483818110610b5c57610b5c61547e565b905060200201356001613851565b610b73816154f8565b9050610b3f565b506005805461ffff60a01b191661420160a01b1790558015610bd6576034805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b60fd60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c589190615513565b6001600160a01b0316336001600160a01b031614610c885760405162461bcd60e51b815260040161073290615530565b610c91816138f9565b50565b60fd5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d00919061557a565b610d1c5760405162461bcd60e51b815260040161073290615597565b60fe5481811614610d955760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610732565b60fe81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610e1b57610e1b61547e565b60200201518951600160200201518a60200151600060028110610e4057610e4061547e565b60200201518b60200151600160028110610e5c57610e5c61547e565b602090810291909101518c518d830151604051610eb99a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610edc91906155df565b9050610f4f610ef5610eee88846139f0565b8690613a87565b610efd613b1b565b610f45610f3685610f30604080518082018252600080825260209182015281518083019092526001825260029082015290565b906139f0565b610f3f8c613bdb565b90613a87565b886201d4c0613c6b565b909890975095505050505050565b610f65613e8f565b610c9181613795565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610fda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffe9190615601565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015611069573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108d919061561a565b90506001600160c01b038116158061112757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111229190615643565b60ff16155b1561114357505060408051600081526020810190915292915050565b6000611157826001600160c01b0316613ee9565b90506000805b825181101561122d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f58483815181106111a7576111a761547e565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa1580156111eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120f9190615601565b6112199083615660565b915080611225816154f8565b91505061115d565b506000816001600160401b038111156112485761124861493a565b604051908082528060200260200182016040528015611271578160200160208202803683370190505b5090506000805b84518110156114305760008582815181106112955761129561547e565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa15801561130a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132e9190615601565b905060005b8181101561141a576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa1580156113a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113cc919061568d565b600001518686815181106113e2576113e261547e565b6001600160a01b039092166020928302919091019091015284611404816154f8565b9550508080611412906154f8565b915050611333565b5050508080611428906154f8565b915050611278565b5090979650505050505050565b611445613e8f565b610c9181613fab565b611456613e8f565b6114608282613851565b5050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e69190615513565b6001600160a01b0316336001600160a01b0316146115925760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610732565b610c9181614014565b6115a3613e8f565b60648160ff1611156115c85760405163048278b760e41b815260040160405180910390fd5b6005805460ff60a81b1916600160a81b60ff8416908102919091179091556040519081527fc3acdc4f4bc283baa27c4207eb2c32954fbb26960847c9e15c2f7c8970134244906020015b60405180910390a150565b60fd5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015611665573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611689919061557a565b6116a55760405162461bcd60e51b815260040161073290615597565b60001960fe81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b604080518082019091526060808252602082015260008461175b5760405162461bcd60e51b81526020600482015260376024820152600080516020615b3c83398151915260448201527f7265733a20656d7074792071756f72756d20696e7075740000000000000000006064820152608401610732565b60408301515185148015611773575060a08301515185145b8015611783575060c08301515185145b8015611793575060e08301515185145b6117fd5760405162461bcd60e51b81526020600482015260416024820152600080516020615b3c83398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610732565b825151602084015151146118755760405162461bcd60e51b815260206004820152604460248201819052600080516020615b3c833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610732565b4363ffffffff168463ffffffff16106118e45760405162461bcd60e51b815260206004820152603c6024820152600080516020615b3c83398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610732565b6040805180820182526000808252602080830191909152825180840190935260608084529083015290866001600160401b038111156119255761192561493a565b60405190808252806020026020018201604052801561194e578160200160208202803683370190505b506020820152866001600160401b0381111561196c5761196c61493a565b604051908082528060200260200182016040528015611995578160200160208202803683370190505b50815260408051808201909152606080825260208201528560200151516001600160401b038111156119c9576119c961493a565b6040519080825280602002602001820160405280156119f2578160200160208202803683370190505b5081526020860151516001600160401b03811115611a1257611a1261493a565b604051908082528060200260200182016040528015611a3b578160200160208202803683370190505b5081602001819052506000611b0d8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051639aa1653d60e01b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169350639aa1653d925060048083019260209291908290030181865afa158015611ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b089190615643565b614055565b905060005b876020015151811015611da857611b5788602001518281518110611b3857611b3861547e565b6020026020010151805160009081526020918201519091526040902090565b83602001518281518110611b6d57611b6d61547e565b60209081029190910101528015611c2d576020830151611b8e6001836156ce565b81518110611b9e57611b9e61547e565b602002602001015160001c83602001518281518110611bbf57611bbf61547e565b602002602001015160001c11611c2d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615b3c83398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610732565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec635184602001518381518110611c7257611c7261547e565b60200260200101518b8b600001518581518110611c9157611c9161547e565b60200260200101516040518463ffffffff1660e01b8152600401611cce9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0f919061561a565b6001600160c01b031683600001518281518110611d2e57611d2e61547e565b602002602001018181525050611d94610eee611d688486600001518581518110611d5a57611d5a61547e565b6020026020010151166140df565b8a602001518481518110611d7e57611d7e61547e565b602002602001015161410a90919063ffffffff16565b945080611da0816154f8565b915050611b12565b5050611db3836141ee565b60cb5490935060ff16600081611dca576000611e4c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4c9190615601565b905060005b8a8110156124ca578215611fac578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c428f8f86818110611ea857611ea861547e565b60405160e085901b6001600160e01b031916815292013560f81c600483015250602401602060405180830381865afa158015611ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0c9190615601565b611f169190615660565b11611fac5760405162461bcd60e51b81526020600482015260666024820152600080516020615b3c83398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610732565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac8d8d84818110611fed57611fed61547e565b9050013560f81c60f81b60f81c8c8c60a0015185815181106120115761201161547e565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa15801561206d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209191906156e5565b6001600160401b0319166120b48a604001518381518110611b3857611b3861547e565b67ffffffffffffffff1916146121505760405162461bcd60e51b81526020600482015260616024820152600080516020615b3c83398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610732565b612180896040015182815181106121695761216961547e565b602002602001015187613a8790919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c568d8d848181106121c3576121c361547e565b9050013560f81c60f81b60f81c8c8c60c0015185815181106121e7576121e761547e565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612243573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122679190615710565b8560200151828151811061227d5761227d61547e565b6001600160601b039092166020928302919091018201528501518051829081106122a9576122a961547e565b6020026020010151856000015182815181106122c7576122c761547e565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a60200151518110156124b55761233f866000015182815181106123115761231161547e565b60200260200101518f8f8681811061232b5761232b61547e565b600192013560f81c9290921c811614919050565b156124a3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae8f8f868181106123855761238561547e565b9050013560f81c60f81b60f81c8e896020015185815181106123a9576123a961547e565b60200260200101518f60e0015188815181106123c7576123c761547e565b602002602001015187815181106123e0576123e061547e565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124689190615710565b875180518590811061247c5761247c61547e565b60200260200101818151612490919061572d565b6001600160601b03169052506001909101905b806124ad816154f8565b9150506122eb565b505080806124c2906154f8565b915050611e51565b5050506000806124e48c868a606001518b60800151610dd3565b91509150816125555760405162461bcd60e51b81526020600482015260436024820152600080516020615b3c83398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610732565b806125b65760405162461bcd60e51b81526020600482015260396024820152600080516020615b3c83398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610732565b505060008782602001516040516020016125d1929190615755565b60408051808303601f190181529190528051602090910120929b929a509198505050505050505050565b612603613e8f565b61260d6000614289565b565b6008546001600160a01b0316336001600160a01b0316146126435760405163b8088f8760e01b815260040160405180910390fd5b8281146126925760405162461bcd60e51b815260206004820152601c60248201527f496e70757420617272617973206c656e677468206d69736d61746368000000006044820152606401610732565b60005b8381101561274a5760008585838181106126b1576126b161547e565b90506020020160208101906126c69190614ecc565b90506001600160a01b0381166126ef5760405163d92e233d60e01b815260040160405180910390fd5b8383838181106127015761270161547e565b90506020020160208101906127169190614fde565b1561272c576127266009826142db565b50612739565b6127376009826142f0565b505b50612743816154f8565b9050612695565b507f9fbe9a594da1fe3606c91442c9f6caaa2aba26087872d8373187473f11efd40b84848484604051612780949392919061579d565b60405180910390a150505050565b600061279b600983614305565b92915050565b60006127ad6009614327565b905090565b60fe54156127d25760405162461bcd60e51b8152600401610732906153e6565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461281a5760405162461bcd60e51b81526004016107329061582d565b600554600160a01b900460ff16801561283957506128378261278e565b155b1561285757604051634414c63360e01b815260040160405180910390fd5b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906128a590859085906004016158f2565b600060405180830381600087803b1580156128bf57600080fd5b505af11580156128d3573d6000803e3d6000fd5b505050505050565b6000838152600160205260408120606091906128f690614327565b9050808410612918576040516392c4425960e01b815260040160405180910390fd5b60006129248486615660565b9050818111156129315750805b600061293d86836156ce565b6001600160401b038111156129545761295461493a565b60405190808252806020026020018201604052801561297d578160200160208202803683370190505b509050855b828110156129d85760008881526001602052604090206129a29082614331565b826129ad89846156ce565b815181106129bd576129bd61547e565b60209081029190910101526129d1816154f8565b9050612982565b509695505050505050565b60fe5415612a035760405162461bcd60e51b8152600401610732906153e6565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612a4b5760405162461bcd60e51b81526004016107329061582d565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b158015612aaf57600080fd5b505af1158015612ac3573d6000803e3d6000fd5b5050505050565b612ad2613e8f565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb35590612a9590849060040161593d565b600081815260016020526040812061279b90614327565b612b3d613e8f565b600554600160a01b900460ff1615612b6857604051637952fbad60e11b815260040160405180910390fd5b6005805460ff60a01b1916600160a01b1790556040517f8a943acd5f4e6d3df7565a4a08a93f6b04cc31bb6c01ca4aef7abd6baf455ec390600090a1565b612bae613e8f565b600554600160a01b900460ff16612bd757604051625ecddb60e01b815260040160405180910390fd5b6005805460ff60a01b191690556040517f2d35c8d348a345fd7b3b03b7cfcf7ad0b60c2d46742d5ca536342e4185becb0790600090a1565b600061279b600983614331565b6000828152600160205260408120612c3490836135bf565b9392505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc19190615643565b60ff16905080612cdf57505060408051600081526020810190915290565b6000805b82811015612d9457604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612d52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d769190615601565b612d809083615660565b915080612d8c816154f8565b915050612ce3565b506000816001600160401b03811115612daf57612daf61493a565b604051908082528060200260200182016040528015612dd8578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e619190615643565b60ff16811015612ffa57604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef99190615601565b905060005b81811015612fe5576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f97919061568d565b60000151858581518110612fad57612fad61547e565b6001600160a01b039092166020928302919091019091015283612fcf816154f8565b9450508080612fdd906154f8565b915050612efe565b50508080612ff2906154f8565b915050612ddf565b5090949350505050565b600082815260208190526040902054829060ff166130355760405163daf4a8a360e01b815260040160405180910390fd5b61303d613e8f565b6000838152600160205260408120613055908461433d565b905080156130ab5760008481526006602052604090206130759084613626565b50604080518481523360208201527f1bdeffc0337373bf2f6fd4219080133eeaaee0554206d9bb24a019d96973c1eb9101612780565b50505050565b6130b9613e8f565b6001600160a01b03811661311e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610732565b610c9181614289565b61312f613e8f565b610c91816137f7565b60fd60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561318b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131af9190615513565b6001600160a01b0316336001600160a01b0316146131df5760405162461bcd60e51b815260040161073290615530565b60fe5419811960fe5419161461325d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610732565b60fe81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610dc8565b61329c614349565b60005b81811015613570578282828181106132b9576132b961547e565b90506020028101906132cb9190615950565b6132dc906040810190602001614ecc565b6001600160a01b03166323b872dd33308686868181106132fe576132fe61547e565b90506020028101906133109190615950565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015613367573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061338b919061557a565b5060008383838181106133a0576133a061547e565b90506020028101906133b29190615950565b6133c3906040810190602001614ecc565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa158015613431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134559190615601565b90508383838181106134695761346961547e565b905060200281019061347b9190615950565b61348c906040810190602001614ecc565b6001600160a01b031663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000838787878181106134ce576134ce61547e565b90506020028101906134e09190615950565b604001356134ee9190615660565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355d919061557a565b505080613569906154f8565b905061329f565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906128a590859085906004016159d6565b60008181526001830160205260408120541515612c34565b60006135e2826143de565b60408051825160208083019190915283015163ffffffff16818301529101516060820152608001604051602081830303815290604052805190602001209050919050565b6000612c34838361443d565b60fd546001600160a01b031615801561365357506001600160a01b03821615155b6136d55760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610732565b60fe81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2611460826138f9565b603454610100900460ff166137835760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610732565b61378c82614289565b61146081613fab565b600580546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f175f27847b3568e0da876ffca3dc0bb52db4e6556346aedb530c6fe86610da2791015b60405180910390a15050565b600880546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f1d7f4da50d8af7a6cea3e56e235c952f5a92d4c862da2d587f7b67f6d0156bb291016137eb565b60018210156138735760405163daf4a8a360e01b815260040160405180910390fd5b60008281526020819052604090205460ff16151581151514156138a957604051631cf3d59360e31b815260040160405180910390fd5b60008281526020818152604091829020805460ff19168415159081179091558251858152918201527fe6dc5430aa4f5f1f54e9c1a3698de870c829afe22acf2737d45f109b82881b1e91016137eb565b6001600160a01b0381166139875760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610732565b60fd54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fd80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820190915260008082526020820152613a0c614860565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808015613a3f57613a41565bfe5b5080613a7f5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610732565b505092915050565b6040805180820190915260008082526020820152613aa361487e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808015613a3f575080613a7f5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610732565b613b2361489c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080613c0b600080516020615b1c833981519152866155df565b90505b613c178161448c565b9093509150600080516020615b1c833981519152828309831415613c51576040805180820190915290815260208101919091529392505050565b600080516020615b1c833981519152600182089050613c0e565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190613c9d6148c1565b60005b6002811015613e62576000613cb68260066154d9565b9050848260028110613cca57613cca61547e565b60200201515183613cdc836000615660565b600c8110613cec57613cec61547e565b6020020152848260028110613d0357613d0361547e565b60200201516020015183826001613d1a9190615660565b600c8110613d2a57613d2a61547e565b6020020152838260028110613d4157613d4161547e565b6020020151515183613d54836002615660565b600c8110613d6457613d6461547e565b6020020152838260028110613d7b57613d7b61547e565b6020020151516001602002015183613d94836003615660565b600c8110613da457613da461547e565b6020020152838260028110613dbb57613dbb61547e565b602002015160200151600060028110613dd657613dd661547e565b602002015183613de7836004615660565b600c8110613df757613df761547e565b6020020152838260028110613e0e57613e0e61547e565b602002015160200151600160028110613e2957613e2961547e565b602002015183613e3a836005615660565b600c8110613e4a57613e4a61547e565b60200201525080613e5a816154f8565b915050613ca0565b50613e6b6148e0565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6067546001600160a01b0316331461260d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610732565b6060600080613ef7846140df565b61ffff166001600160401b03811115613f1257613f1261493a565b6040519080825280601f01601f191660200182016040528015613f3c576020820181803683370190505b5090506000805b825182108015613f54575061010081105b15612ffa576001811b935085841615613f9b578060f81b838381518110613f7d57613f7d61547e565b60200101906001600160f81b031916908160001a9053508160010191505b613fa4816154f8565b9050613f43565b609954604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1609980546001600160a01b0319166001600160a01b0392909216919091179055565b60cb805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc90602001611612565b6000806140618461450e565b9050808360ff166001901b11612c345760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610732565b6000805b821561279b576140f46001846156ce565b909216918061410281615ae3565b9150506140e3565b60408051808201909152600080825260208201526102008261ffff16106141665760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610732565b8161ffff166001141561417a57508161279b565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff16106141e357600161ffff871660ff83161c811614156141c6576141c38484613a87565b93505b6141d08384613a87565b92506201fffe600192831b169101614196565b509195945050505050565b6040805180820190915260008082526020820152815115801561421357506020820151155b15614231575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020615b1c833981519152846020015161426491906155df565b61427c90600080516020615b1c8339815191526156ce565b905292915050565b919050565b606780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000612c34836001600160a01b03841661443d565b6000612c34836001600160a01b03841661469b565b6001600160a01b03811660009081526001830160205260408120541515612c34565b600061279b825490565b6000612c34838361478e565b6000612c34838361469b565b6099546001600160a01b0316331461260d5760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610732565b6040805160608101825260008082526020820181905291810191909152604051806060016040528083600001358152602001836060016020810190614423919061541d565b63ffffffff16815260200183608001358152509050919050565b60008181526001830160205260408120546144845750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561279b565b50600061279b565b60008080600080516020615b1c8339815191526003600080516020615b1c83398151915286600080516020615b1c833981519152888909090890506000614502827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615b1c8339815191526147b8565b91959194509092505050565b6000610100825111156145975760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610732565b81516145a557506000919050565b600080836000815181106145bb576145bb61547e565b0160200151600160f89190911c81901b92505b8451811015614692578481815181106145e9576145e961547e565b0160200151600160f89190911c1b915082821161467e5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610732565b9181179161468b816154f8565b90506145ce565b50909392505050565b600081815260018301602052604081205480156147845760006146bf6001836156ce565b85549091506000906146d3906001906156ce565b90508181146147385760008660000182815481106146f3576146f361547e565b90600052602060002001549050808760000184815481106147165761471661547e565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061474957614749615b05565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061279b565b600091505061279b565b60008260000182815481106147a5576147a561547e565b9060005260206000200154905092915050565b6000806147c36148e0565b6147cb6148fe565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828015613a3f5750826148555760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610732565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806148af61491c565b81526020016148bc61491c565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156149725761497261493a565b60405290565b60405161010081016001600160401b03811182821017156149725761497261493a565b604051606081016001600160401b03811182821017156149725761497261493a565b604051601f8201601f191681016001600160401b03811182821017156149e5576149e561493a565b604052919050565b60006001600160401b03821115614a0657614a0661493a565b5060051b60200190565b803563ffffffff8116811461428457600080fd5b600082601f830112614a3557600080fd5b81356020614a4a614a45836149ed565b6149bd565b82815260059290921b84018101918181019086841115614a6957600080fd5b8286015b848110156129d857614a7e81614a10565b8352918301918301614a6d565b600060408284031215614a9d57600080fd5b614aa5614950565b9050813581526020820135602082015292915050565b600082601f830112614acc57600080fd5b81356020614adc614a45836149ed565b82815260069290921b84018101918181019086841115614afb57600080fd5b8286015b848110156129d857614b118882614a8b565b835291830191604001614aff565b600082601f830112614b3057600080fd5b614b38614950565b806040840185811115614b4a57600080fd5b845b81811015614b64578035845260209384019301614b4c565b509095945050505050565b600060808284031215614b8157600080fd5b614b89614950565b9050614b958383614b1f565b8152614ba48360408401614b1f565b602082015292915050565b600082601f830112614bc057600080fd5b81356020614bd0614a45836149ed565b82815260059290921b84018101918181019086841115614bef57600080fd5b8286015b848110156129d85780356001600160401b03811115614c125760008081fd5b614c208986838b0101614a24565b845250918301918301614bf3565b60006101808284031215614c4157600080fd5b614c49614978565b905081356001600160401b0380821115614c6257600080fd5b614c6e85838601614a24565b83526020840135915080821115614c8457600080fd5b614c9085838601614abb565b60208401526040840135915080821115614ca957600080fd5b614cb585838601614abb565b6040840152614cc78560608601614b6f565b6060840152614cd98560e08601614a8b565b6080840152610120840135915080821115614cf357600080fd5b614cff85838601614a24565b60a0840152610140840135915080821115614d1957600080fd5b614d2585838601614a24565b60c0840152610160840135915080821115614d3f57600080fd5b50614d4c84828501614baf565b60e08301525092915050565b60008060408385031215614d6b57600080fd5b82356001600160401b0380821115614d8257600080fd5b9084019060a08287031215614d9657600080fd5b90925060208401359080821115614dac57600080fd5b50614db985828601614c2e565b9150509250929050565b6001600160a01b0381168114610c9157600080fd5b60008083601f840112614dea57600080fd5b5081356001600160401b03811115614e0157600080fd5b6020830191508360208260051b8501011115614e1c57600080fd5b9250929050565b60008060008060008060008060e0898b031215614e3f57600080fd5b8835614e4a81614dc3565b9750602089013596506040890135614e6181614dc3565b95506060890135614e7181614dc3565b94506080890135614e8181614dc3565b935060a0890135614e9181614dc3565b925060c08901356001600160401b03811115614eac57600080fd5b614eb88b828c01614dd8565b999c989b5096995094979396929594505050565b600060208284031215614ede57600080fd5b8135612c3481614dc3565b600060208284031215614efb57600080fd5b5035919050565b6000806000806101208587031215614f1957600080fd5b84359350614f2a8660208701614a8b565b9250614f398660608701614b6f565b9150614f488660e08701614a8b565b905092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015614f945783516001600160a01b031683529284019291840191600101614f6f565b50909695505050505050565b8015158114610c9157600080fd5b60008060408385031215614fc157600080fd5b823591506020830135614fd381614fa0565b809150509250929050565b600060208284031215614ff057600080fd5b8135612c3481614fa0565b60ff81168114610c9157600080fd5b60006020828403121561501c57600080fd5b8135612c3481614ffb565b60008060008060006080868803121561503f57600080fd5b8535945060208601356001600160401b038082111561505d57600080fd5b818801915088601f83011261507157600080fd5b81358181111561508057600080fd5b89602082850101111561509257600080fd5b60208301965094506150a660408901614a10565b935060608801359150808211156150bc57600080fd5b506150c988828901614c2e565b9150509295509295909350565b600081518084526020808501945080840160005b8381101561510f5781516001600160601b0316875295820195908201906001016150ea565b509495945050505050565b604081526000835160408084015261513560808401826150d6565b90506020850151603f1984830301606085015261515282826150d6565b925050508260208301529392505050565b6000806000806040858703121561517957600080fd5b84356001600160401b038082111561519057600080fd5b61519c88838901614dd8565b909650945060208701359150808211156151b557600080fd5b506151c287828801614dd8565b95989497509550505050565b60006001600160401b038311156151e7576151e761493a565b6151fa601f8401601f19166020016149bd565b905082815283838301111561520e57600080fd5b828260208301376000602084830101529392505050565b6000806040838503121561523857600080fd5b823561524381614dc3565b915060208301356001600160401b038082111561525f57600080fd5b908401906060828703121561527357600080fd5b61527b61499b565b82358281111561528a57600080fd5b83019150601f8201871361529d57600080fd5b6152ac878335602085016151ce565b815260208301356020820152604083013560408201528093505050509250929050565b6000806000606084860312156152e457600080fd5b505081359360208301359350604090920135919050565b6020808252825182820181905260009190848201906040850190845b81811015614f9457835183529284019291840191600101615317565b60006020828403121561534557600080fd5b81356001600160401b0381111561535b57600080fd5b8201601f8101841361536c57600080fd5b61537b848235602084016151ce565b949350505050565b6000806040838503121561539657600080fd5b50508035926020909101359150565b600080602083850312156153b857600080fd5b82356001600160401b038111156153ce57600080fd5b6153da85828601614dd8565b90969095509350505050565b6020808252601c908201527f5061757361626c653a20636f6e74726163742069732070617573656400000000604082015260600190565b60006020828403121561542f57600080fd5b612c3482614a10565b6000808335601e1984360301811261544f57600080fd5b8301803591506001600160401b0382111561546957600080fd5b602001915036819003821315614e1c57600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160601b03808316818516818304811182151516156154d0576154d0615494565b02949350505050565b60008160001904831182151516156154f3576154f3615494565b500290565b600060001982141561550c5761550c615494565b5060010190565b60006020828403121561552557600080fd5b8151612c3481614dc3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561558c57600080fd5b8151612c3481614fa0565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000826155fc57634e487b7160e01b600052601260045260246000fd5b500690565b60006020828403121561561357600080fd5b5051919050565b60006020828403121561562c57600080fd5b81516001600160c01b0381168114612c3457600080fd5b60006020828403121561565557600080fd5b8151612c3481614ffb565b6000821982111561567357615673615494565b500190565b6001600160601b0381168114610c9157600080fd5b60006040828403121561569f57600080fd5b6156a7614950565b82516156b281614dc3565b815260208301516156c281615678565b60208201529392505050565b6000828210156156e0576156e0615494565b500390565b6000602082840312156156f757600080fd5b815167ffffffffffffffff1981168114612c3457600080fd5b60006020828403121561572257600080fd5b8151612c3481615678565b60006001600160601b038381169083168181101561574d5761574d615494565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b8381101561579057815185529382019390820190600101615774565b5092979650505050505050565b6040808252810184905260008560608301825b878110156157e05782356157c381614dc3565b6001600160a01b03168252602092830192909101906001016157b0565b5083810360208581019190915285825291508590820160005b8681101561582057823561580c81614fa0565b1515825291830191908301906001016157f9565b5098975050505050505050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b818110156158cb576020818501810151868301820152016158af565b818111156158dd576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b038316815260406020820152600082516060604084015261591c60a08401826158a5565b90506020840151606084015260408401516080840152809150509392505050565b602081526000612c3460208301846158a5565b60008235609e1983360301811261596657600080fd5b9190910192915050565b803561428481614dc3565b8183526000602080850194508260005b8581101561510f57813561599e81614dc3565b6001600160a01b03168752818301356159b681615678565b6001600160601b031687840152604096870196919091019060010161598b565b60208082528181018390526000906040808401600586901b8501820187855b88811015615ad557878303603f190184528135368b9003609e19018112615a1b57600080fd5b8a0160a0813536839003601e19018112615a3457600080fd5b820180356001600160401b03811115615a4c57600080fd5b8060061b3603841315615a5e57600080fd5b828752615a70838801828c850161597b565b92505050615a7f888301615970565b6001600160a01b03168886015281870135878601526060615aa1818401614a10565b63ffffffff16908601526080615ab8838201614a10565b63ffffffff169501949094525092850192908501906001016159f5565b509098975050505050505050565b600061ffff80831681811415615afb57615afb615494565b6001019392505050565b634e487b7160e01b600052603160045260246000fdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47424c535369676e6174757265436865636b65722e636865636b5369676e617475a264697066735822122060e93a87fdad92cdcbfc454e21714d03e59852f475b055b3e7df4c8a7e88a6b764736f6c634300080c0033000000000000000000000000055733000064333caddbc92763c58bf0192ffebf000000000000000000000000acc1fb458a1317e886db376fc8141540537e68fe0000000000000000000000001ea7d160d325b289bf981e0d7ab6bf3261a0fff20000000000000000000000000b3ee1adc2944dccbb817f7d77915c7d38f7b858", + "nonce": "0x26e", "chainId": "0x4268" }, "additionalContracts": [], @@ -26,39 +27,39 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x674376", + "cumulativeGasUsed": "0x5b05a7", "logs": [ { - "address": "0xebf02940b63a82adba4b0fd5cdc4bc3af0bb37db", + "address": "0x60e6f7de65a99e0d4c953fe0792b6b5f34de6801", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0x5dd88b24ab16925afec8b3141887f21066d85cac61bdb99bfae4d9b123f9d36a", - "blockNumber": "0x1a579e", - "transactionHash": "0x41023524e071f1f4837fd29f3aa44205795e1545684c90047d47ee3c50402bc3", - "transactionIndex": "0xe", - "logIndex": "0x14", + "blockHash": "0xffc4a76e0a092e93bfad6d71080537171ac714818fa873fe4c0a506e334138f6", + "blockNumber": "0x216353", + "transactionHash": "0xe5b46c0a568e266b3573babc28280a5120bafc12e12dfd0d91c09b38a3d32753", + "transactionIndex": "0xa", + "logIndex": "0x13", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000200000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x41023524e071f1f4837fd29f3aa44205795e1545684c90047d47ee3c50402bc3", - "transactionIndex": "0xe", - "blockHash": "0x5dd88b24ab16925afec8b3141887f21066d85cac61bdb99bfae4d9b123f9d36a", - "blockNumber": "0x1a579e", - "gasUsed": "0x4a1104", - "effectiveGasPrice": "0x3e7f9d4f", - "from": "0x4700e6415660694e4a441f490f097471d4624c00", + "transactionHash": "0xe5b46c0a568e266b3573babc28280a5120bafc12e12dfd0d91c09b38a3d32753", + "transactionIndex": "0xa", + "blockHash": "0xffc4a76e0a092e93bfad6d71080537171ac714818fa873fe4c0a506e334138f6", + "blockNumber": "0x216353", + "gasUsed": "0x4eeb3c", + "effectiveGasPrice": "0x1e5e44", + "from": "0x31cc55d177824193a5fa2bf34da8afafbd366111", "to": null, - "contractAddress": "0xebf02940b63a82adba4b0fd5cdc4bc3af0bb37db" + "contractAddress": "0x60e6f7de65a99e0d4c953fe0792b6b5f34de6801" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1718266302, + "timestamp": 1724391911, "chain": 17000, - "commit": "6f9aa8a" + "commit": "1baad5f" } \ No newline at end of file diff --git a/contracts/broadcast/MachServiceManagerUpgrader.s.sol/17000/run-1724392959.json b/contracts/broadcast/MachServiceManagerUpgrader.s.sol/17000/run-1724392959.json new file mode 100644 index 0000000..ae90ef9 --- /dev/null +++ b/contracts/broadcast/MachServiceManagerUpgrader.s.sol/17000/run-1724392959.json @@ -0,0 +1,65 @@ +{ + "transactions": [ + { + "hash": "0xb023cab10b1ae9690ac45e4926ebe9402304b96db58156c7f99e9e498e32a8e2", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x2ab98471c25061c11431ea72f92215dc1d918c64", + "function": "upgrade(address,address)", + "arguments": [ + "0xAE9a4497dee2540DaF489BeddB0706128a99ec63", + "0x60e6f7de65a99e0d4C953fe0792B6B5f34DE6801" + ], + "transaction": { + "from": "0x31cc55d177824193a5fa2bf34da8afafbd366111", + "to": "0x2ab98471c25061c11431ea72f92215dc1d918c64", + "gas": "0xdde6", + "value": "0x0", + "input": "0x99a88ec4000000000000000000000000ae9a4497dee2540daf489beddb0706128a99ec6300000000000000000000000060e6f7de65a99e0d4c953fe0792b6b5f34de6801", + "nonce": "0x26f", + "chainId": "0x4268" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x114062", + "logs": [ + { + "address": "0xae9a4497dee2540daf489beddb0706128a99ec63", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x00000000000000000000000060e6f7de65a99e0d4c953fe0792b6b5f34de6801" + ], + "data": "0x", + "blockHash": "0xc8e1890377dbb1a2e19b08c564709646057b642da1f68f77eb17204d18a8cdf0", + "blockNumber": "0x2163a5", + "transactionHash": "0xb023cab10b1ae9690ac45e4926ebe9402304b96db58156c7f99e9e498e32a8e2", + "transactionIndex": "0xa", + "logIndex": "0xc", + "removed": false + } + ], + "logsBloom": "0x00040000000000000000000000000000400020000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xb023cab10b1ae9690ac45e4926ebe9402304b96db58156c7f99e9e498e32a8e2", + "transactionIndex": "0xa", + "blockHash": "0xc8e1890377dbb1a2e19b08c564709646057b642da1f68f77eb17204d18a8cdf0", + "blockNumber": "0x2163a5", + "gasUsed": "0x97ba", + "effectiveGasPrice": "0x1c92ce", + "from": "0x31cc55d177824193a5fa2bf34da8afafbd366111", + "to": "0x2ab98471c25061c11431ea72f92215dc1d918c64", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1724392959, + "chain": 17000, + "commit": "27e6bed" +} \ No newline at end of file diff --git a/contracts/broadcast/MachServiceManagerUpgrader.s.sol/17000/run-latest.json b/contracts/broadcast/MachServiceManagerUpgrader.s.sol/17000/run-latest.json new file mode 100644 index 0000000..ae90ef9 --- /dev/null +++ b/contracts/broadcast/MachServiceManagerUpgrader.s.sol/17000/run-latest.json @@ -0,0 +1,65 @@ +{ + "transactions": [ + { + "hash": "0xb023cab10b1ae9690ac45e4926ebe9402304b96db58156c7f99e9e498e32a8e2", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x2ab98471c25061c11431ea72f92215dc1d918c64", + "function": "upgrade(address,address)", + "arguments": [ + "0xAE9a4497dee2540DaF489BeddB0706128a99ec63", + "0x60e6f7de65a99e0d4C953fe0792B6B5f34DE6801" + ], + "transaction": { + "from": "0x31cc55d177824193a5fa2bf34da8afafbd366111", + "to": "0x2ab98471c25061c11431ea72f92215dc1d918c64", + "gas": "0xdde6", + "value": "0x0", + "input": "0x99a88ec4000000000000000000000000ae9a4497dee2540daf489beddb0706128a99ec6300000000000000000000000060e6f7de65a99e0d4c953fe0792b6b5f34de6801", + "nonce": "0x26f", + "chainId": "0x4268" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x114062", + "logs": [ + { + "address": "0xae9a4497dee2540daf489beddb0706128a99ec63", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x00000000000000000000000060e6f7de65a99e0d4c953fe0792b6b5f34de6801" + ], + "data": "0x", + "blockHash": "0xc8e1890377dbb1a2e19b08c564709646057b642da1f68f77eb17204d18a8cdf0", + "blockNumber": "0x2163a5", + "transactionHash": "0xb023cab10b1ae9690ac45e4926ebe9402304b96db58156c7f99e9e498e32a8e2", + "transactionIndex": "0xa", + "logIndex": "0xc", + "removed": false + } + ], + "logsBloom": "0x00040000000000000000000000000000400020000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xb023cab10b1ae9690ac45e4926ebe9402304b96db58156c7f99e9e498e32a8e2", + "transactionIndex": "0xa", + "blockHash": "0xc8e1890377dbb1a2e19b08c564709646057b642da1f68f77eb17204d18a8cdf0", + "blockNumber": "0x2163a5", + "gasUsed": "0x97ba", + "effectiveGasPrice": "0x1c92ce", + "from": "0x31cc55d177824193a5fa2bf34da8afafbd366111", + "to": "0x2ab98471c25061c11431ea72f92215dc1d918c64", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1724392959, + "chain": 17000, + "commit": "27e6bed" +} \ No newline at end of file diff --git a/docs/Deployments.md b/docs/Deployments.md index 027cc38..9aaee0a 100644 --- a/docs/Deployments.md +++ b/docs/Deployments.md @@ -81,7 +81,7 @@ | Name | Address | Implementation | | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | | ProxyAdmin | [`0x2AB98471C25061C11431EA72F92215DC1d918C64`](https://holesky.etherscan.io/address/0x2AB98471C25061C11431EA72F92215DC1d918C64) | | -| ServiceManager | [`0xAE9a4497dee2540DaF489BeddB0706128a99ec63`](https://holesky.etherscan.io/address/0xAE9a4497dee2540DaF489BeddB0706128a99ec63) | [`0xb211e43Ec79d7268fC139B098B3DA937C013C47c`](https://holesky.etherscan.io/address/0xb211e43Ec79d7268fC139B098B3DA937C013C47c) | +| ServiceManager | [`0xAE9a4497dee2540DaF489BeddB0706128a99ec63`](https://holesky.etherscan.io/address/0xAE9a4497dee2540DaF489BeddB0706128a99ec63) | [`0x60e6f7de65a99e0d4c953fe0792b6b5f34de6801`](https://holesky.etherscan.io/address/0x60e6f7de65a99e0d4c953fe0792b6b5f34de6801) | | RegistryCoordinator | [`0x1eA7D160d325B289bF981e0D7aB6Bf3261a0FFf2`](https://holesky.etherscan.io/address/0x1eA7D160d325B289bF981e0D7aB6Bf3261a0FFf2) | | | BLSApkRegistry | [`0x2e9267bAbAdD516471c884D41ED1A1c1D01aeDf3`](https://holesky.etherscan.io/address/0x2e9267bAbAdD516471c884D41ED1A1c1D01aeDf3) | | | IndexRegistry | [`0x6b715bFFf9A6bbD1Eb745B55df8cEd592CbcbB50`](https://holesky.etherscan.io/address/0x6b715bFFf9A6bbD1Eb745B55df8cEd592CbcbB50) | |