Full lifecycle view
Relayer Wraps Tx
Eth tx → Canton BlockProposal
Validator2 — Re-execute
participant2 · REVM re-execution
Validator3 — Re-execute
participant3 · REVM re-execution
Illustrative visualization. Canton commits Command → Consensus → Finalization atomically within a single transaction, so individual Canton step durations are estimates. Measured anchors from on-chain timestamps: Canton record time → synchronizer effective time, and effective time → EVM block timestamp (second granularity).
Total
3.64s
Canton Finalization
Atomic
Atomic commit
Block Publish
3.64s
±1s (block ts granularity)
Spans are measured from on-chain timestamps: Canton record time → synchronizer effective time, and effective time → EVM block timestamp. The EVM block timestamp has one-second granularity, so Block Publish carries up to ±1s of rounding; Canton's internal steps commit atomically and are not individually timed.
0x02f93c9f830e4a256f010f8342e07f8080b93c4b6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b613b75806100d65f395ff3fe608060405234801561000f575f5ffd5b5060043610610297575f3560e01c80637a9e5e4b11610161578063aba63705116100ca578063d505accf11610084578063d505accf146105c9578063dd62ed3e146105dc578063e5839836146105ef578063f2fde38b14610602578063f898178914610615578063fc7e5fa814610628575f5ffd5b8063aba637051461056d578063b84c824614610575578063bf7e214f14610588578063c47f002714610590578063c69c09cf146105a3578063cbf3f861146105b6575f5ffd5b80638fb360371161011b5780638fb36037146104f85780639285948a1461051957806395d89b411461052c5780639dc29fac146105345780639fc1d0e714610547578063a9059cbb1461055a575f5ffd5b80637a9e5e4b146104945780637ecebe00146104a75780638456cb59146104ba57806384b0196e146104c257806388d695b2146104dd5780638da5cb5b146104f0575f5ffd5b80633d1ddc5b116102035780634a6cc677116101bd5780634a6cc6771461042a57806354fd4d501461043d5780635c975abb1461045e5780636290865d14610466578063685731071461046e57806370a0823114610481575f5ffd5b80633d1ddc5b146103c35780633f4ba83a146103d657806340c10f19146103de5780634203bb4f146103f157806342a47abc146104045780634710362d14610417575f5ffd5b806318160ddd1161025457806318160ddd146103415780631a7af379146103685780631fe56f7d1461037b57806323b872dd1461038e578063313ce567146103a15780633644e515146103bb575f5ffd5b806301ffc9a71461029b57806306fdde03146102c3578063095ea7b3146102d8578063125c4a33146102eb578063134e18f414610300578063158b1a5714610320575b5f5ffd5b6102ae6102a936600461314c565b61063b565b60405190151581526020015b60405180910390f35b6102cb61069b565b6040516102ba91906131a8565b6102ae6102e63660046131ce565b610731565b6102fe6102f93660046131ce565b610748565b005b610308610762565b6040516001600160a01b0390911681526020016102ba565b61033361032e3660046131f8565b61077d565b6040519081526020016102ba565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254610333565b6102fe61037636600461325a565b6107aa565b6102fe6103893660046131ce565b61082d565b6102ae61039c3660046132c4565b610840565b6103a961093d565b60405160ff90911681526020016102ba565b610333610952565b6102fe6103d13660046131f8565b610960565b6102fe6109a4565b6102fe6103ec3660046131ce565b6109b7565b6102fe6103ff3660046133b4565b6109ca565b6102fe610412366004613471565b610c1d565b6102fe61042536600461325a565b610cba565b6102fe61043836600461325a565b610d25565b6040805180820190915260058152640352e302e360dc1b60208201526102cb565b6102ae610d90565b610308610dbc565b6102fe61047c36600461325a565b610dd7565b61033361048f3660046131f8565b610e42565b6102fe6104a23660046131f8565b610e72565b6103336104b53660046131f8565b610e7b565b6102fe610e85565b6104ca610e96565b6040516102ba979695949392919061350d565b6102fe6104eb36600461325a565b610ed8565b610308610f3a565b610500610f43565b6040516001600160e01b031990911681526020016102ba565b6102ae6105273660046135a3565b610f79565b6102cb61115b565b6102fe6105423660046131ce565b611173565b6102ae6105553660046132c4565b611186565b6102ae6105683660046131ce565b61119b565b6103086111a8565b6102fe6105833660046135eb565b6111c8565b610308611211565b6102fe61059e3660046135eb565b611230565b6102fe6105b1366004613664565b61126d565b6102fe6105c43660046131f8565b611280565b6102fe6105d736600461369b565b6112e9565b6103336105ea366004613705565b61143e565b6102ae6105fd3660046131f8565b611487565b6102fe6106103660046131f8565b6114b4565b6102fe6106233660046131f8565b61150c565b6102fe61063636600461325a565b6116c6565b5f6001600160e01b031982166336372b0760e01b148061066b57506001600160e01b03198216632e5f651360e21b145b8061068657506001600160e01b03198216634ec7fbed60e11b145b80610695575061069582611731565b92915050565b60606106a5611765565b80546106b090613731565b80601f01602080910402602001604051908101604052809291908181526020018280546106dc90613731565b80156107275780601f106106fe57610100808354040283529160200191610727565b820191905f5260205f20905b81548152906001019060200180831161070a57829003601f168201915b5050505050905090565b5f3361073e818585611789565b5060019392505050565b610754335b5f3661179b565b61075e8282611891565b5050565b5f61076b611765565b600401546001600160a01b0316919050565b5f610786611765565b6001600160a01b039092165f90815260059290920160205250604090206001015490565b63c69c09cf60e01b6107bd335b82611972565b5f5b848110156108255761081d8686838181106107dc576107dc613769565b90506020020160208101906107f191906131f8565b85858481811061080357610803613769565b9050602002016020810190610818919061377d565b6119b9565b6001016107bf565b505050505050565b6108363361074d565b61075e8282611a20565b5f610849611765565b600301546001600160a01b03166397c905b2336040516001600160e01b031960e084901b1681526001600160a01b0391821660048201528188166024820152908616604482015260648101859052608401602060405180830381865afa1580156108b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d99190613798565b3385858590919293610926576040516387891f0160e01b81526001600160a01b03948516600482015292841660248401529216604482015260648101919091526084015b60405180910390fd5b50505050610935848484611aeb565b949350505050565b5f610946611765565b6002015460ff16919050565b5f61095b611b0e565b905090565b6109693361074d565b80610972611765565b60020160016101000a8154816001600160a01b0302191690836001600160a01b031602179055506109a1611b17565b50565b6109ad3361074d565b6109b5611b9e565b565b6109c03361074d565b61075e8282611c10565b5f6109d3611c44565b805490915060ff600160401b82041615906001600160401b03165f811580156109f95750825b90505f826001600160401b03166001148015610a145750303b155b905081158015610a22575080155b15610a405760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a6a57845460ff60401b1916600160401b1785555b6001600160a01b03891615801590610a8a57506001600160a01b03881615155b8015610a9e57506001600160a01b03861615155b610abb5760405163d92e233d60e01b815260040160405180910390fd5b5f8c51118015610acb57505f8b51115b610ae85760405163ecd7b0d160e01b815260040160405180910390fd5b89601260ff82161115610b145760405163179a89b960e31b815260ff909116600482015260240161091d565b50610b1f8c8c611c6c565b610b288c611c7e565b610b30611ca9565b610b3986611cb1565b5f610b42611765565b905080610b4f8e826137f7565b5060018101610b5e8d826137f7565b506002810180546001600160a01b03808b16610100026001600160a81b031990921660ff8f1617919091179091556004820180548c83166001600160a01b031991821617909155600383018054928c1692909116919091179055610bc0611b17565b610bc8611cc2565b508315610c0f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b639fc1d0e760e01b610c2e336107b7565b5f5b86811015610cb057610ca7888883818110610c4d57610c4d613769565b9050602002016020810190610c6291906131f8565b878784818110610c7457610c74613769565b9050602002016020810190610c8991906131f8565b868685818110610c9b57610c9b613769565b90506020020135611d1d565b50600101610c30565b5050505050505050565b631fe56f7d60e01b610ccb336107b7565b5f5b8481101561082557610d1d868683818110610cea57610cea613769565b9050602002016020810190610cff91906131f8565b858584818110610d1157610d11613769565b90506020020135611a20565b600101610ccd565b632770a7eb60e21b610d36336107b7565b5f5b8481101561082557610d88868683818110610d5557610d55613769565b9050602002016020810190610d6a91906131f8565b858584818110610d7c57610d7c613769565b90506020020135611e37565b600101610d38565b5f61095b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff1690565b5f610dc5611765565b600301546001600160a01b0316919050565b6340c10f1960e01b610de8336107b7565b5f5b8481101561082557610e3a868683818110610e0757610e07613769565b9050602002016020810190610e1c91906131f8565b858584818110610e2e57610e2e613769565b90506020020135611c10565b600101610dea565b5f805f516020613b205f395f51905f525b6001600160a01b039093165f9081526020939093525050604090205490565b6109a181611e6b565b5f61069582611eed565b610e8e3361074d565b6109b5611cc2565b5f6060805f5f5f6060610ea7611f15565b610eaf611f1f565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f5b83811015610f3357610f2a858583818110610ef757610ef7613769565b9050602002016020810190610f0c91906131f8565b848484818110610f1e57610f1e613769565b9050602002013561119b565b50600101610eda565b5050505050565b5f61095b611211565b5f516020613b005f395f51905f5280545f9190600160a01b900460ff16610f6a575f610f73565b638fb3603760e01b5b91505090565b5f610f833361074d565b5f610f8c611765565b90505f610f9886610e42565b9050805f03610fba576040516377a3c6cd60e11b815260040160405180910390fd5b600482810154604051630bb7c8fd60e31b81526001600160a01b0389811693820193909352911690635dbe47e890602401602060405180830381865afa158015611006573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102a9190613798565b806110a05750600482810154604051630bb7c8fd60e31b81526001600160a01b0388811693820193909352911690635dbe47e890602401602060405180830381865afa15801561107c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110a09190613798565b6110bd576040516335a39e3360e11b815260040160405180910390fd5b6001600160a01b0386165f9081526005830160205260409020600101546110e5878784611ff2565b6110ef8682612007565b6110f98787612092565b611104878787612182565b846001600160a01b0316866001600160a01b0316886001600160a01b03167ff0c9129a94f30f1caaceb63e44b9811d0a3edf1d6c23757f346093af5553fed060405160405180910390a45060019695505050505050565b6060611165611765565b60010180546106b090613731565b61117c3361074d565b61075e8282611e37565b5f6111903361074d565b610935848484611d1d565b5f3361073e8185856124c7565b5f6111b1611765565b6002015461010090046001600160a01b0316919050565b6111d13361074d565b806111ef5760405163ecd7b0d160e01b815260040160405180910390fd5b81816111f9611765565b600101916112089190836138b1565b5061075e611b17565b5f61095b5f516020613b005f395f51905f52546001600160a01b031690565b6112393361074d565b806112575760405163ecd7b0d160e01b815260040160405180910390fd5b8181611261611765565b916112089190836138b1565b6112763361074d565b61075e82826119b9565b6112893361074d565b8061129381612524565b8161129c611765565b60040180546001600160a01b0319166001600160a01b03928316179055604051908316907fd2be862d755bca7e0d39772b2cab3a5578da9c285f69199f4c063c2294a7f36c905f90a25050565b8342111561130d5760405163313c898160e11b81526004810185905260240161091d565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886113778c6001600160a01b03165f9081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f6113d1826125d0565b90505f6113e0828787876125fc565b9050896001600160a01b0316816001600160a01b031614611427576040516325c0072360e11b81526001600160a01b0380831660048301528b16602482015260440161091d565b6114328a8a8a611789565b50505050505050505050565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f611490611765565b6001600160a01b039092165f90815260059290920160205250604090205460ff1690565b5f6114bd611211565b90506114c882610e72565b816001600160a01b0316816001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6115153361074d565b8061151f81612524565b5f826001600160a01b0316636a3edf286040518163ffffffff1660e01b8152600401602060405180830381865afa15801561155c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611580919061396a565b90506001600160a01b038116156115aa57604051631e8ea11560e01b815260040160405180910390fd5b5f6115b3611765565b60038101549091506001600160a01b03161561162457600381015460405163040db3b560e41b81523060048201526001600160a01b03909116906340db3b50906024015f604051808303815f87803b15801561160d575f5ffd5b505af115801561161f573d5f5f3e3d5ffd5b505050505b6003810180546001600160a01b0319166001600160a01b038616908117909155604051631ffad50160e11b8152306004820152633ff5aa02906024015f604051808303815f87803b158015611677575f5ffd5b505af1158015611689573d5f5f3e3d5ffd5b50506040516001600160a01b03871692507f7f3a888862559648ec01d97deb7b5012bff86dc91e654a1de397170db40e35b691505f90a250505050565b63125c4a3360e01b6116d7336107b7565b5f5b84811015610825576117298686838181106116f6576116f6613769565b905060200201602081019061170b91906131f8565b85858481811061171d5761171d613769565b90506020020135611891565b6001016116d9565b5f6001600160e01b031982166307f5828d60e41b148061069557506301ffc9a760e01b6001600160e01b0319831614610695565b7f3eb201768b0b55c18fa93955aeb38c6bf0f381d8227d53e1b0e5b066883d4e0090565b6117968383836001612628565b505050565b5f516020613b005f395f51905f525f806117d36117b6611211565b87306117c560045f8a8c613985565b6117ce916139ac565b61270b565b91509150816108255763ffffffff81161561186e57825460ff60a01b1916600160a01b178355611801611211565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401611830939291906139e4565b5f604051808303815f87803b158015611847575f5ffd5b505af1158015611859573d5f5f3e3d5ffd5b5050845460ff60a01b19168555506108259050565b60405162d1953b60e31b81526001600160a01b038716600482015260240161091d565b5f61189a611765565b90505f6118a684610e42565b6001600160a01b0385165f9081526005840160205260409020600101549091506118d1908490613a37565b8110158482859091926118fa5760405163391434e360e21b815260040161091d93929190613a4a565b5050506001600160a01b0384165f90815260058301602052604081206001018054859290611929908490613a37565b90915550506040518381526001600160a01b038516907fa065e63c631c86f1b9f66a4a2f63f2093bf1c2168d23290259dbd969e0222a459060200160405180910390a250505050565b5f61198661197e611211565b84308561270b565b50905082816119b35760405162d1953b60e31b81526001600160a01b03909116600482015260240161091d565b50505050565b806119c2611765565b6001600160a01b0384165f8181526005929092016020526040808320805460ff191694151594909417909355915133928415159290917f7fa523c84ab8d7fc5b72f08b9e46dbbf10c39e119a075b3e317002d14bc9f4369190a45050565b5f611a29611765565b6001600160a01b0384165f908152600582016020526040902060010154909150829081811015611a755760405163245de53960e01b81526004810192909252602482015260440161091d565b50506001600160a01b0383165f90815260058201602052604081206001018054849290611aa3908490613a6b565b90915550506040518281526001600160a01b038416907f9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d69060200160405180910390a2505050565b5f33611af885828561279d565b611b038585856124c7565b506001949350505050565b5f61095b6127e8565b611b1f611765565b6002015461010090046001600160a01b03167f6a1105ac8148a3c319adbc369f9072573e8a11d3a3d195e067e7c40767ec54d1611b5a61069b565b611b6261115b565b611b6a61093d565b60408051808201825260058152640352e302e360dc1b60208201529051611b949493929190613a7e565b60405180910390a2565b611ba661285b565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b6001600160a01b038216611c395760405163ec442f0560e01b81525f600482015260240161091d565b61075e5f8383612880565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610695565b611c74612c07565b61075e8282612c2c565b611c86612c07565b6109a181604051806040016040528060018152602001603160f81b815250612c7c565b6109b5612c07565b611cb9612c07565b6109a181612cdf565b611cca612cf0565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611bf2565b5f5f611d27611765565b60048181015460405163b9209e3360e01b81526001600160a01b0388811693820193909352929350169063b9209e3390602401602060405180830381865afa158015611d75573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d999190613798565b611db657604051631630428960e21b815260040160405180910390fd5b611dc1858585611ff2565b60038101546040516322ebca6d60e21b81526001600160a01b03878116600483015286811660248301526044820186905290911690638baf29b4906064015f604051808303815f87803b158015611e16575f5ffd5b505af1158015611e28573d5f5f3e3d5ffd5b50600198975050505050505050565b6001600160a01b038216611e6057604051634b637e8f60e11b81525f600482015260240161091d565b61075e825f83612880565b33611e74611211565b6001600160a01b0316816001600160a01b031614611eaf5760405162d1953b60e31b81526001600160a01b038216600482015260240161091d565b816001600160a01b03163b5f03611ee4576040516361798f2f60e11b81526001600160a01b038316600482015260240161091d565b61075e82612d16565b5f807f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00610e53565b606061095b61069b565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091611f7090613731565b80601f0160208091040260200160405190810160405280929190818152602001828054611f9c90613731565b8015611fe75780601f10611fbe57610100808354040283529160200191611fe7565b820191905f5260205f20905b815481529060010190602001808311611fca57829003601f168201915b505050505091505090565b611ffc8382612d76565b611796838383612e6f565b801561075e5780612016611765565b6005015f846001600160a01b03166001600160a01b031681526020019081526020015f206001015f82825461204b9190613a37565b90915550506040518181526001600160a01b038316907fa065e63c631c86f1b9f66a4a2f63f2093bf1c2168d23290259dbd969e0222a459060200160405180910390a25050565b5f61209b611765565b6001600160a01b0384165f90815260058201602052604090205490915060ff1615611796576001600160a01b0383165f818152600583016020526040808220805460ff19169055513092907f7fa523c84ab8d7fc5b72f08b9e46dbbf10c39e119a075b3e317002d14bc9f436908390a46001600160a01b0382165f90815260058201602052604090205460ff16611796576001600160a01b0382165f818152600583016020526040808220805460ff191660019081179091559051309391927f7fa523c84ab8d7fc5b72f08b9e46dbbf10c39e119a075b3e317002d14bc9f43691a4505050565b5f61218b611765565b600481810154604051630bb7c8fd60e31b81526001600160a01b03878116938201939093529293501690635dbe47e890602401602060405180830381865afa1580156121d9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121fd9190613798565b15806122845750600481810154604051633c3ad79560e21b81526001600160a01b0386811693820193909352848316929091169063f0eb5e5490602401602060405180830381865afa158015612255573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612279919061396a565b6001600160a01b0316145b6122a1576040516335a39e3360e11b815260040160405180910390fd5b600481810154604051630bb7c8fd60e31b81526001600160a01b0387811693820193909352911690635dbe47e890602401602060405180830381865afa1580156122ed573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123119190613798565b156119b357600481810154604051630bb7c8fd60e31b81526001600160a01b0386811693820193909352911690635dbe47e890602401602060405180830381865afa158015612362573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123869190613798565b61246d57600481810154604051637e42683b60e01b81526001600160a01b038781169382019390935291169063454a03e090859085908490637e42683b90602401602060405180830381865afa1580156123e2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124069190613aca565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015261ffff1660448201526064015f604051808303815f87803b158015612456575f5ffd5b505af1158015612468573d5f5f3e3d5ffd5b505050505b60048181015460405163a8d29d1d60e01b81526001600160a01b038781169382019390935291169063a8d29d1d906024015f604051808303815f87803b1580156124b5575f5ffd5b505af1158015610cb0573d5f5f3e3d5ffd5b6001600160a01b0383166124f057604051634b637e8f60e11b81525f600482015260240161091d565b6001600160a01b0382166125195760405163ec442f0560e01b81525f600482015260240161091d565b611796838383612880565b6001600160a01b038116158015906125b3575061253f611211565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612584573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125a8919061396a565b6001600160a01b0316145b6109a157604051630cb1b46760e41b815260040160405180910390fd5b5f6106956125dc611b0e565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f5f61260c88888888612f95565b92509250925061261c828261305d565b50909695505050505050565b5f516020613b205f395f51905f526001600160a01b03851661265f5760405163e602df0560e01b81525f600482015260240161091d565b6001600160a01b03841661268857604051634a1406b160e11b81525f600482015260240161091d565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610f3357836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516126fc91815260200190565b60405180910390a35050505050565b6040516001600160a01b038085166024830152831660448201526001600160e01b0319821660648201525f908190819060840160408051601f19818403018152918152602080830180516001600160e01b031663b700961360e01b1781525f808052918290528351939450919290918a5afa15612793575f516020805191945081901c150291505b5094509492505050565b5f6127a8848461143e565b90505f198110156119b357818110156127da57828183604051637dc7a0d960e11b815260040161091d93929190613a4a565b6119b384848484035f612628565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612812613115565b61281a61312a565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b612863610d90565b6109b557604051638dfc202b60e01b815260040160405180910390fd5b5f612889611765565b90506001600160a01b0384811615908416158115826128a6575080155b156129a9576128b3612cf0565b6001600160a01b0386165f908152600584016020526040902054869060ff16156128fc576040516317ee869560e21b81526001600160a01b03909116600482015260240161091d565b506001600160a01b0385165f908152600584016020526040902054859060ff1615612946576040516317ee869560e21b81526001600160a01b03909116600482015260240161091d565b506001600160a01b0386165f90815260058401602052604081206001015461296d88610e42565b6129779190613a6b565b9050868186818111156129a05760405163391434e360e21b815260040161091d93929190613a4a565b505050506129b9565b80156129b9576129b98685612d76565b80612ae55760048381015460405163b9209e3360e01b81526001600160a01b038881169382019390935291169063b9209e3390602401602060405180830381865afa158015612a0a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a2e9190613798565b612a4b57604051631630428960e21b815260040160405180910390fd5b60038301546040516372331c7360e11b81526001600160a01b0388811660048301528781166024830152604482018790529091169063e46638e690606401602060405180830381865afa158015612aa4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ac89190613798565b612ae557604051630290850560e41b815260040160405180910390fd5b612af0868686612e6f565b8115612b5f576003830154604051635f8dead360e01b81526001600160a01b0387811660048301526024820187905290911690635f8dead3906044015b5f604051808303815f87803b158015612b44575f5ffd5b505af1158015612b56573d5f5f3e3d5ffd5b50505050610825565b8015612ba057600383015460405163469753b960e11b81526001600160a01b0388811660048301526024820187905290911690638d2ea77290604401612b2d565b60038301546040516322ebca6d60e21b81526001600160a01b03888116600483015287811660248301526044820187905290911690638baf29b4906064015f604051808303815f87803b158015612bf5575f5ffd5b505af1158015611432573d5f5f3e3d5ffd5b612c0f613133565b6109b557604051631afcd79f60e31b815260040160405180910390fd5b612c34612c07565b5f516020613b205f395f51905f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03612c6d84826137f7565b50600481016119b383826137f7565b612c84612c07565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102612cd084826137f7565b50600381016119b383826137f7565b612ce7612c07565b6109a181612d16565b612cf8610d90565b156109b55760405163d93c066560e01b815260040160405180910390fd5b5f516020613b005f395f51905f5280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b5f612d7f611765565b90505f612d8b84610e42565b905083818481811115612db45760405163391434e360e21b815260040161091d93929190613a4a565b5050506001600160a01b0384165f908152600583016020526040812060010154612dde9083613a6b565b905080841115610f33575f612df38286613a6b565b6001600160a01b0387165f908152600586016020526040812060010180549293508392909190612e24908490613a6b565b90915550506040518181526001600160a01b038716907f9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d69060200160405180910390a2505050505050565b5f516020613b205f395f51905f526001600160a01b038416612ea95781816002015f828254612e9e9190613a37565b90915550612f069050565b6001600160a01b0384165f9081526020829052604090205482811015612ee85784818460405163391434e360e21b815260040161091d93929190613a4a565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316612f24576002810180548390039055612f42565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f8791815260200190565b60405180910390a350505050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115612fce57505f91506003905082613053565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561301f573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661304a57505f925060019150829050613053565b92505f91508190505b9450945094915050565b5f82600381111561307057613070613aeb565b03613079575050565b600182600381111561308d5761308d613aeb565b036130ab5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156130bf576130bf613aeb565b036130e05760405163fce698f760e01b81526004810182905260240161091d565b60038260038111156130f4576130f4613aeb565b0361075e576040516335e2f38360e21b81526004810182905260240161091d565b5f61311e611f15565b80519060200120905090565b5f61311e611f1f565b5f61313c611c44565b54600160401b900460ff16919050565b5f6020828403121561315c575f5ffd5b81356001600160e01b031981168114613173575f5ffd5b9392505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f613173602083018461317a565b6001600160a01b03811681146109a1575f5ffd5b5f5f604083850312156131df575f5ffd5b82356131ea816131ba565b946020939093013593505050565b5f60208284031215613208575f5ffd5b8135613173816131ba565b5f5f83601f840112613223575f5ffd5b5081356001600160401b03811115613239575f5ffd5b6020830191508360208260051b8501011115613253575f5ffd5b9250929050565b5f5f5f5f6040858703121561326d575f5ffd5b84356001600160401b03811115613282575f5ffd5b61328e87828801613213565b90955093505060208501356001600160401b038111156132ac575f5ffd5b6132b887828801613213565b95989497509550505050565b5f5f5f606084860312156132d6575f5ffd5b83356132e1816131ba565b925060208401356132f1816131ba565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112613325575f5ffd5b81356001600160401b0381111561333e5761333e613302565b604051601f8201601f19908116603f011681016001600160401b038111828210171561336c5761336c613302565b604052818152838201602001851015613383575f5ffd5b816020850160208301375f918101602001919091529392505050565b803560ff811681146133af575f5ffd5b919050565b5f5f5f5f5f5f5f60e0888a0312156133ca575f5ffd5b87356001600160401b038111156133df575f5ffd5b6133eb8a828b01613316565b97505060208801356001600160401b03811115613406575f5ffd5b6134128a828b01613316565b9650506134216040890161339f565b94506060880135613431816131ba565b93506080880135613441816131ba565b925060a0880135613451816131ba565b915060c0880135613461816131ba565b8091505092959891949750929550565b5f5f5f5f5f5f60608789031215613486575f5ffd5b86356001600160401b0381111561349b575f5ffd5b6134a789828a01613213565b90975095505060208701356001600160401b038111156134c5575f5ffd5b6134d189828a01613213565b90955093505060408701356001600160401b038111156134ef575f5ffd5b6134fb89828a01613213565b979a9699509497509295939492505050565b60ff60f81b8816815260e060208201525f61352b60e083018961317a565b828103604084015261353d818961317a565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015613592578351835260209384019390920191600101613574565b50909b9a5050505050505050505050565b5f5f5f606084860312156135b5575f5ffd5b83356135c0816131ba565b925060208401356135d0816131ba565b915060408401356135e0816131ba565b809150509250925092565b5f5f602083850312156135fc575f5ffd5b82356001600160401b03811115613611575f5ffd5b8301601f81018513613621575f5ffd5b80356001600160401b03811115613636575f5ffd5b856020828401011115613647575f5ffd5b6020919091019590945092505050565b80151581146109a1575f5ffd5b5f5f60408385031215613675575f5ffd5b8235613680816131ba565b9150602083013561369081613657565b809150509250929050565b5f5f5f5f5f5f5f60e0888a0312156136b1575f5ffd5b87356136bc816131ba565b965060208801356136cc816131ba565b955060408801359450606088013593506136e86080890161339f565b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215613716575f5ffd5b8235613721816131ba565b91506020830135613690816131ba565b600181811c9082168061374557607f821691505b60208210810361376357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561378d575f5ffd5b813561317381613657565b5f602082840312156137a8575f5ffd5b815161317381613657565b601f82111561179657805f5260205f20601f840160051c810160208510156137d85750805b601f840160051c820191505b81811015610f33575f81556001016137e4565b81516001600160401b0381111561381057613810613302565b6138248161381e8454613731565b846137b3565b6020601f821160018114613856575f831561383f5750848201515b5f19600385901b1c1916600184901b178455610f33565b5f84815260208120601f198516915b828110156138855787850151825560209485019460019092019101613865565b50848210156138a257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001600160401b038311156138c8576138c8613302565b6138dc836138d68354613731565b836137b3565b5f601f84116001811461390d575f85156138f65750838201355b5f19600387901b1c1916600186901b178355610f33565b5f83815260208120601f198716915b8281101561393c578685013582556020948501946001909201910161391c565b5086821015613958575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f6020828403121561397a575f5ffd5b8151613173816131ba565b5f5f85851115613993575f5ffd5b8386111561399f575f5ffd5b5050820193919092039150565b80356001600160e01b031981169060048410156139dd576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561069557610695613a23565b6001600160a01b039390931683526020830191909152604082015260600190565b8181038181111561069557610695613a23565b608081525f613a90608083018761317a565b8281036020840152613aa2818761317a565b905060ff851660408401528281036060840152613abf818561317a565b979650505050505050565b5f60208284031215613ada575f5ffd5b815161ffff81168114613173575f5ffd5b634e487b7160e01b5f52602160045260245ffdfef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a26469706673582212208127e741a0a616b8e6f7bdd57f93c86d8b33e8702fea406ac51fc3ee8f1c36ca64736f6c634300081e0033c001a0a213c5ddbd83f6a8bfcff91c9c9b233e5a6ae00550147069508302c38686ddf6a039691bc8541f34a299401be1fbd81d320c424738241534d31da13c766c013de8