From 9498c4525de090b6fa00e9fb9edeb8a063b10669 Mon Sep 17 00:00:00 2001 From: huyhuynh3103 Date: Thu, 18 Jan 2024 12:03:15 +0700 Subject: [PATCH] test: reuse deployment scripts in test --- logs/debug.ansi | 1527 ----------------- script/GeneralConfig.sol | 26 +- script/Migration.s.sol | 13 +- .../MainchainBridgeManagerDeploy.s.sol | 1 - .../{Base.t.sol => BaseIntegration.t.sol} | 6 +- .../bridge-manager/BridgeManagerInterface.sol | 32 - .../BridgeManager_IntegrationTest.t.sol | 96 -- .../setConfig.MainchainManager.t.sol | 16 +- .../setConfig.RoninBridgeManager.t.sol | 14 +- test/init-test/DefaultTestConfig.sol | 88 - test/init-test/InitTest.sol | 377 ---- test/init-test/Structs.sol | 210 --- test/utils/Signers.sol | 21 - 13 files changed, 27 insertions(+), 2400 deletions(-) delete mode 100644 logs/debug.ansi rename test/bridge/integration/{Base.t.sol => BaseIntegration.t.sol} (97%) delete mode 100644 test/bridge/integration/bridge-manager/BridgeManagerInterface.sol delete mode 100644 test/bridge/integration/bridge-manager/BridgeManager_IntegrationTest.t.sol delete mode 100644 test/init-test/DefaultTestConfig.sol delete mode 100644 test/init-test/InitTest.sol delete mode 100644 test/init-test/Structs.sol delete mode 100644 test/utils/Signers.sol diff --git a/logs/debug.ansi b/logs/debug.ansi deleted file mode 100644 index 9a5ebdf4..00000000 --- a/logs/debug.ansi +++ /dev/null @@ -1,1527 +0,0 @@ -Compiling 11 files with 0.8.23 -Solc 0.8.23 finished in 24.97s -Compiler run successful! -2024-01-17T22:15:03.885799Z ERROR forge::runner: setUp failed reason=revert: StdCheats deployCode(string,bytes): Deployment failed. contract=0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496 - -Running 1 test for test/bridge/integration/Base.t.sol:Base_Integration -[FAIL. Reason: setup failed: revert: StdCheats deployCode(string,bytes): Deployment failed.] setUp() (gas: 0) -Logs: - Block Number: 1 | Timestamp: 1 | Gas Price: 0 | Block Gas Limit: 9223372036854775807 - - NetworkConfig: fork mode disabled, no active fork - NetworkConfig: fork mode disabled, no active fork - NetworkConfig: fork mode disabled, no active fork - NetworkConfig: fork mode disabled, no active fork - NetworkConfig: fork mode disabled, no active fork - NetworkConfig: fork mode disabled, no active fork - Deployer 0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38 - > roninGateway 0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496 - > mainchainGateway 0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB - > bridgeTrackingContract 0x50EEf481cae4250d252Ae577A09bF514f224C6C4 - > bridgeSlashContract 0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809 - > bridgeRewardContract 0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351 - > roninBridgeManagerContract 0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3 - > mainchainBridgeManagerContract 0x4C52a6277b1B84121b3072C0c92b6Be0b7CC10F1 - > WETH 0x978e3286EB805934215a88694d80b09aDed68D90 - > AXS 0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb - > SLP 0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4 - > USDC 0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6 - > _deployProxy RoninGatewayV3 ... - > _deployLogic RoninGatewayV3 ... - RoninGatewayV3Logic will be deployed at: address/0x90193c961a926261b756d1e5bb255e67ff9498a1 (nonce: 3) - Skipping artifact generation for: (31337)RoninGatewayV3::Logic[0x90193C961A926261B756D1E5bb255e67ff9498A1] - - RoninGatewayV3Proxy will be deployed at: address/0xa8452ec99ce0c64f20701db7dd3abdb607c00496 (nonce: 4) - Skipping artifact generation for: (31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496] - - > _deployImmutable RoninBridgeManager ... - -Traces: - [1471827968] Base_Integration::setUp() - ├─ [1451388669] → new @0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f - │ ├─ [0] VM::makePersistent(GeneralConfig: [0x1CED95eC8629bdA85E80B6C506C15DB62aB8f761]) - │ │ └─ ← () - │ ├─ [0] VM::allowCheatcodes(GeneralConfig: [0x1CED95eC8629bdA85E80B6C506C15DB62aB8f761]) - │ │ └─ ← () - │ ├─ [0] VM::etch(GeneralConfig: [0x1CED95eC8629bdA85E80B6C506C15DB62aB8f761], 0x6080604052348015630000001257600080fd5b506040805160208082018352600082528251808401909352600c83526b6465706c6f796d656e74732f60a01b9083015290808281600d630000005683826300003b66565b50600e630000006782826300003b66565b5060149150630000007c905082826300003b66565b50630000008963000000c4565b50630000009663000002eb565b63000000a26300000409565b63000000ae630000055c565b63000000bb81630000056d565b5050630000453a565b60405163348051d760e11b815243600482015263000002e99063000002e290600080516020630000944883398151915290636900a3ae90602401600060405180830381865afa158015630000011d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052630000014991908101906300003d48565b60405163348051d760e11b8152426004820152600080516020630000944883398151915290636900a3ae90602401600060405180830381865afa1580156300000196573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405263000001c291908101906300003d48565b60405163348051d760e11b81523a6004820152600080516020630000944883398151915290636900a3ae90602401600060405180830381865afa158015630000020f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052630000023b91908101906300003d48565b60405163348051d760e11b8152456004820152600080516020630000944883398151915290636900a3ae90602401600060405180830381865afa1580156300000288573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405263000002b491908101906300003d48565b60405160200163000002cb94939291906300003da4565b60408051601f198184030181529190526300000dd5565b6300000e0e565b565b630000034b63000002fe60006300000e60565b630000030c60006300000f2c565b630000031a60006300000f57565b630000032860006300001077565b6300000336600063000011b2565b6300000344600063000012e7565b6300001399565b63000003a4630000035e60016300000e60565b630000036c60016300000f2c565b630000037a60016300000f57565b630000038860016300001077565b6300000396600163000011b2565b6300000344600163000012e7565b63000003fd63000003b760026300000e60565b63000003c560026300000f2c565b63000003d360026300000f57565b63000003e160026300001077565b63000003ef600263000011b2565b6300000344600263000012e7565b63000002e96300001472565b63000004176000630000157d565b600f60006300000428816300001661565b81526020019081526020016000209081630000044691906300003b66565b5063000004556001630000157d565b600f6000630000046760016300001661565b81526020019081526020016000209081630000048591906300003b66565b5063000004c3630000049960016300000f2c565b63000004a760006300001661565b73505d91e8fd2091794b45b27f86c045529fa92cd76300001675565b630000050063000004d660026300000f2c565b63000004e460006300001661565b73a3e7d085e65cb0b916f6717da876b7be5cc92f036300001675565b630000053d630000051360026300000f2c565b630000052160016300001661565b73ca11bde05977b3631167028862be2a173976ca116300001675565b6300000550630000051360016300000f2c565b63000002e963000017b8565b63000002e96001600160e01b038116565b60405163130d191f60e11b815260609060008051602063000094488339815191529063261a323e9063000005a79085906004016300003ed1565b6020604051808303816000875af192505050801563000005e8575060408051601f3d908101601f1916820190925263000005e5918101906300003efa565b60015b63000006cb57604051630625e2cf60e51b815260008051602063000094488339815191529063c4bc59e09063000006259085906004016300003ed1565b600060405180830381865afa925050508015630000066957506040513d6000823e601f3d908101601f19168201604052630000066691908101906300003f1b565b60015b63000006c25763000006be6040518060400160405280600f81526020016e21b7b73a3930b1ba21b7b73334b39d60891b81525060405180606001604052806023815260200163000094ab60239139630000224b565b5050565b90506300000728565b8063000007265763000007216040518060400160405280600f81526020016e21b7b73a3930b1ba21b7b73334b39d60891b81525060405180606001604052806023815260200163000094ab60239139630000224b565b505050565b505b604051630625e2cf60e51b815260008051602063000094488339815191529063c4bc59e090630000075f9085906004016300003ed1565b600060405180830381865afa92505050801563000007a357506040513d6000823e601f3d908101601f1916820160405263000007a091908101906300003f1b565b60015b63000007f85763000006be6040518060400160405280600f81526020016e21b7b73a3930b1ba21b7b73334b39d60891b81525060405180606001604052806023815260200163000094ab60239139630000224b565b905060005b8151811015630000072157600060008051602063000094ee83398151915260001c6001600160a01b031663c4bc59e0848481518110630000084457630000084463000040ab565b6020026020010151602001516040518263ffffffff1660e01b8152600401630000087091906300003ed1565b600060405180830381865afa158015630000088f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405263000008bb91908101906300003f1b565b9050600060008051602063000094ee83398151915260001c6001600160a01b031663fa91454d60008051602063000094ee83398151915260001c6001600160a01b03166360f9bb11878781518110630000091b57630000091b63000040ab565b602002602001015160200151604051602001630000093b919063000040c1565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401630000096a91906300003ed1565b600060405180830381865afa1580156300000989573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405263000009b591908101906300003d48565b6040518263ffffffff1660e01b815260040163000009d591906300003ed1565b602060405180830381865afa15801563000009f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906300000a1c919063000040f2565b905060005b82518110156300000dc55760008382815181106300000a46576300000a4663000040ab565b60200260200101516020015190506300000a8860405180604001604052806005815260200164173539b7b760d91b81525082630000229c60201b90919060201c565b156300000dba576040805180820190915260018152602f60f81b60208201526000906300000ab990839063000022c0565b9050600081600183516300000ad09190630000410d565b815181106300000ae6576300000ae663000040ab565b6020026020010151905060006300000b2b6040518060400160405280600a815260200169283937bc3c973539b7b760b11b81525085630000229c60201b90919060201c565b6300000b565760405180604001604052806005815260200164173539b7b760d91b8152506300000b7a565b6040518060400160405280600a815260200169283937bc3c973539b7b760b11b8152505b6040805160208101909152600081529091506300000b9d90839083906300002377565b6040516360f9bb1160e01b81529092506000906000805160206300009448833981519152906360f9bb11906300000bda9088906004016300003ed1565b600060405180830381865afa1580156300000bf9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526300000c2591908101906300003d48565b604051631e19e65760e01b8152909150600090600080516020630000944883398151915290631e19e657906300000c629085906004016300004130565b602060405180830381865afa1580156300000c81573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906300000ca991906300004171565b90506300000cba88828663000024b8565b60408051808201909152600a808252692637b3b4b1973539b7b760b11b60209283015287518082111560091990910181028901909201207f0d7be4bcd70547aa33402ed2ab044308c53a781d008c9f83b15d55b94a9b743c14166300000db45760008881526011602052604090206300000d3690826300002659565b5080601260008a8152602001908152602001600020856040516300000d5d9190630000419e565b908152604080516020928190038301902080546001600160a01b0319166001600160a01b039485161790558651601f8089015160008e81526013865284812096881681529590945291909320600019909301100290555b50505050505b506001016300000a21565b50826001019250505063000007fd565b60606300000e08604051806040016040528060058152602001641b5b39336d60d81b81525083630000267960201b60201c565b92915050565b6300000e5d816040516024016300000e2891906300003ed1565b60408051601f198184030181529190526020810180516001600160e01b0390811663104c13eb60e21b1790915263000026c716565b50565b6000808260028111156300000e7b576300000e7b6300003e8b565b036300000e8b5750617a69919050565b60028260028111156300000ea5576300000ea56300003e8b565b036300000eb557506107e4919050565b60018260028111156300000ecf576300000ecf6300003e8b565b036300000edf57506107e5919050565b60405162461bcd60e51b815260206004820181905260248201527f44656661756c744e6574776f726b3a20556e6b6e6f776e20636861696e20696460448201526064015b60405180910390fd5b60006300000e086300000f408363000026e0565b6000601f600183510310601f830151029050919050565b606060008260028111156300000f73576300000f736300003e8b565b036300000f9b5750506040805180820190915260058152641b1bd8d85b60da1b602082015290565b60018260028111156300000fb5576300000fb56300003e8b565b036300000fe557505060408051808201909152600d81526c1c9bdb9a5b8b5d195cdd1b995d609a1b602082015290565b60028260028111156300000fff576300000fff6300003e8b565b03630000102f57505060408051808201909152600d81526c1c9bdb9a5b8b5b585a5b9b995d609a1b602082015290565b60405162461bcd60e51b81526020600482015260256024820152600080516020630000950e833981519152604482015264616c69617360d81b60648201526084016300000f23565b6060600082600281111563000010935763000010936300003e8b565b0363000010bc5750506040805180820190915260068152656c6f63616c2f60d01b602082015290565b600182600281111563000010d65763000010d66300003e8b565b03630000110757505060408051808201909152600e81526d726f6e696e2d746573746e65742f60901b602082015290565b600282600281111563000011215763000011216300003e8b565b03630000115257505060408051808201909152600e81526d726f6e696e2d6d61696e6e65742f60901b602082015290565b60405162461bcd60e51b81526020600482015260346024820152600080516020630000950e83398151915260448201527f6465706c6f796d656e74206469726563746f727900000000000000000000000060648201526084016300000f23565b6060600082600281111563000011ce5763000011ce6300003e8b565b0363000011f95750506040805180820190915260088152674c4f43414c5f504b60c01b602082015290565b600182600281111563000012135763000012136300003e8b565b03630000124057505060408051808201909152600a815269544553544e45545f504b60b01b602082015290565b6002826002811115630000125a57630000125a6300003e8b565b03630000128757505060408051808201909152600a8152694d41494e4e45545f504b60b01b602082015290565b60405162461bcd60e51b815260206004820152602d60248201527f44656661756c744e6574776f726b3a20556e6b6e6f776e20707269766174652060448201526c1ad95e48195b9d881b1858995b609a1b60648201526084016300000f23565b6060600282600281111563000013035763000013036300003e8b565b03630000134357505060408051808201909152601b81527f68747470733a2f2f6170702e726f6e696e636861696e2e636f6d2f0000000000602082015290565b6001826002811115630000135d57630000135d6300003e8b565b0363000013855760405180606001604052806022815260200163000094686022913992915050565b505060408051602081019091526000815290565b60008681526017602052604090819020869055805160c081019091528063000013c4868963000027fc565b815260208082018990526040808301889052606083018790526080830186905260a090920184905260008881526016825282902083518155908301516001820155908201516002820190630000141c90826300003b66565b5060608201516003820190630000143590826300003b66565b5060808201516004820190630000144e90826300003b66565b5060a08201516005820190630000146790826300003b66565b505050505050505050565b63000014cb630000148560006300002add565b630000149360006300002ba4565b63000014a160006300002bb8565b63000014af60006300002cd5565b63000014bd60006300002e0b565b630000034460006300002f3a565b630000152463000014de60016300002add565b63000014ec60016300002ba4565b63000014fa60016300002bb8565b630000150860016300002cd5565b630000151660016300002e0b565b630000034460016300002f3a565b63000002e9630000153760026300002add565b630000154560026300002ba4565b630000155360026300002bb8565b630000156160026300002cd5565b630000156f60026300002e0b565b630000034460026300002f3a565b6060600082600181111563000015995763000015996300003e8b565b0363000015c657505060408051808201909152600a815269283937bc3ca0b236b4b760b11b602082015290565b600182600181111563000015e05763000015e06300003e8b565b03630000160d57505060408051808201909152600a8152694d756c746963616c6c3360b01b602082015290565b60405162461bcd60e51b815260206004820152602160248201527f44656661756c74436f6e74726163743a20556e6b6e6f776e20636f6e747261636044820152601d60fa1b60648201526084016300000f23565b60006300000e086300000f4083630000157d565b600083815260166020526040812060010154906300001695846300002ff5565b9050811580159063000016a85750805115155b63000017115760405162461bcd60e51b815260206004820152603060248201527f47656e6572616c436f6e6669673a204e6574776f726b206f7220436f6e74726160448201526f18dd0812d95e481b9bdd08199bdd5b9960821b60648201526084016300000f23565b630000172082848363000024b8565b6000828152601160205260409020630000173c90846300002659565b5060008281526013602090815260408083206001600160a01b0387168452825280832087905584835260129091529081902090518491906300001782908490630000419e565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050505050565b63000017c66005630000313f565b63000017d46006630000313f565b63000017e26007630000313f565b63000017f06008630000313f565b63000017fe6009630000313f565b630000180c600a630000313f565b630000181a600b630000313f565b60408051808201909152600d81526c26b7b1b5abb930b82a37b5b2b760991b6020820152600f60006300001850815b63000031a2565b81526020019081526020016000209081630000186e91906300003b66565b5060408051808201909152600d81526c26b7b1b5abb930b82a37b5b2b760991b6020820152600f600063000018a5600163000031a2565b8152602001908152602001600020908163000018c391906300003b66565b5060408051808201909152600981526804d6f636b45524332360bc1b6020820152600f600063000018f6600263000031a2565b81526020019081526020016000209081630000191491906300003b66565b5060408051808201909152600981526804d6f636b45524332360bc1b6020820152600f60006300001947600363000031a2565b81526020019081526020016000209081630000196591906300003b66565b5060408051808201909152600981526804d6f636b45524332360bc1b6020820152600f60006300001998600463000031a2565b8152602001908152602001600020908163000019b691906300003b66565b5063000019e663000019d44660009081526017602052604090205490565b63000019e260006300000f2c565b1490565b1563000002e957600063000019fb63000031b6565b90506300001aad6300001a1060006300000f2c565b6300001a1e600863000031a2565b604051633a31bd3d60e11b81526001600160a01b03851660048083019190915260248201526000805160206300009448833981519152906374637a7a906044015b602060405180830381865afa1580156300001a7e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906300001aa691906300004171565b6300001675565b6300001b136300001ac060006300000f2c565b6300001ace600963000031a2565b604051633a31bd3d60e11b81526001600160a01b0385166004820152600560248201526000805160206300009448833981519152906374637a7a906044016300001a5f565b6300001b796300001b2660006300000f2c565b6300001b34600563000031a2565b604051633a31bd3d60e11b81526001600160a01b0385166004820152600760248201526000805160206300009448833981519152906374637a7a906044016300001a5f565b6300001bdf6300001b8c60006300000f2c565b6300001b9a600663000031a2565b604051633a31bd3d60e11b81526001600160a01b0385166004820152600960248201526000805160206300009448833981519152906374637a7a906044016300001a5f565b6300001c456300001bf260006300000f2c565b6300001c00600763000031a2565b604051633a31bd3d60e11b81526001600160a01b0385166004820152600b60248201526000805160206300009448833981519152906374637a7a906044016300001a5f565b6300001cab6300001c5860006300000f2c565b6300001c66600a63000031a2565b604051633a31bd3d60e11b81526001600160a01b0385166004820152600d60248201526000805160206300009448833981519152906374637a7a906044016300001a5f565b6300001d116300001cbe60006300000f2c565b6300001ccc600b63000031a2565b604051633a31bd3d60e11b81526001600160a01b0385166004820152600e60248201526000805160206300009448833981519152906374637a7a906044016300001a5f565b6300001d776300001d2460006300000f2c565b6300001d32600063000031a2565b604051633a31bd3d60e11b81526001600160a01b0385166004820152600f60248201526000805160206300009448833981519152906374637a7a906044016300001a5f565b6300001ddd6300001d8a60006300000f2c565b6300001d98600263000031a2565b604051633a31bd3d60e11b81526001600160a01b0385166004820152601060248201526000805160206300009448833981519152906374637a7a906044016300001a5f565b6300001e436300001df060006300000f2c565b6300001dfe600363000031a2565b604051633a31bd3d60e11b81526001600160a01b0385166004820152601160248201526000805160206300009448833981519152906374637a7a906044016300001a5f565b6300001ea96300001e5660006300000f2c565b6300001e64600463000031a2565b604051633a31bd3d60e11b81526001600160a01b0385166004820152601260248201526000805160206300009448833981519152906374637a7a906044016300001a5f565b6040805180820190915260088152672232b83637bcb2b960c11b60208201526300001ed6908263000032b2565b60408051808201909152600f81526e203e20726f6e696e4761746577617960881b60208201526300001f31906300001f2a6300001f1560006300000f2c565b6300001f23600863000031a2565b6300003303565b63000032b2565b60408051808201909152601381527f203e206d61696e636861696e476174657761790000000000000000000000000060208201526300001f8c906300001f2a6300001f7e60006300000f2c565b6300001f23600a63000031a2565b60408051808201909152601981527f203e20627269646765547261636b696e67436f6e74726163740000000000000060208201526300001fe7906300001f2a6300001fd960006300000f2c565b6300001f23600563000031a2565b60408051808201909152601681527f203e20627269646765536c617368436f6e74726163740000000000000000000060208201526300002042906300001f2a630000203460006300000f2c565b6300001f23600663000031a2565b60408051808201909152601781527f203e20627269646765526577617264436f6e74726163740000000000000000006020820152630000209d906300001f2a630000208f60006300000f2c565b6300001f23600763000031a2565b60408051808201909152601d81527f203e20726f6e696e4272696467654d616e61676572436f6e7472616374000000602082015263000020f8906300001f2a63000020ea60006300000f2c565b6300001f23600963000031a2565b6300002139604051806060016040528060218152602001630000948a602191396300001f2a630000212b60006300000f2c565b6300001f23600b63000031a2565b6040805180820190915260078152660407c40ae8aa8960cb1b6020820152630000217e906300001f2a630000217060006300000f2c565b6300001f23600063000031a2565b604080518082019091526006815265203e2041585360d01b602082015263000021c2906300001f2a63000021b460006300000f2c565b6300001f23600263000031a2565b6040805180820190915260068152650203e20534c560d41b60208201526300002206906300001f2a63000021f860006300000f2c565b6300001f23600363000031a2565b604080518082019091526007815266203e205553444360c81b60208201526300000e5d906300001f2a630000223d60006300000f2c565b6300001f23600463000031a2565b63000006be8282604051602401630000226792919063000041be565b60408051601f198184030181529190526020810180516001600160e01b03908116634b5c427760e01b1790915263000026c716565b80518251602092830182902082820391831115918202909401909201209091141690565b6060600063000022d28484630000332f565b9050601f1960208201600183510160051b81018651838201526001845101845260005b825160608452818114630000233e5760405182820380825286601f8201165b8b85018101518382015287018063000023145750600082820160200152603f018616810160405284525b87516020949094019301905081831063000022f557505050508091508251630000237057602081019150600281510382525b5092915050565b6060835183518351602087019650602086019550602085019450602060405101935082870183831163000024635760018382030160006020851063000023bc57508388205b601f851660200360031b89515b8b51818118831c6300002448578315630000240f5783888e2014630000240f57808a5260019c8d019c90990198848d1063000024075750630000245e565b5063000023c9565b60005b8b8101518b820152602001878110630000241257509b87019b988601988715630000244857848d1063000024075750630000245e565b895260019b8c019b90980197838c1063000023c9575b505050505b84935060206040510194508781038585030192505b8088101563000024975787518452602097880197909301926300002478565b50506000818401908152602001604052601f19909201918252509392505050565b60405163348051d760e11b81526004810184905260008051602063000094488339815191529063c657c7189084906300002549908490636900a3ae90602401600060405180830381865afa1580156300002516573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052630000254291908101906300003d48565b6300003416565b6300002556856300000dd5565b604051632b65311f60e11b81526001600160a01b03881660048201526000805160206300009448833981519152906356ca623e90602401600060405180830381865afa15801563000025ac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405263000025d891908101906300003d48565b60405160200163000025ee9392919063000041f4565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401630000261e929190630000427a565b600060405180830381600087803b158015630000263a57600080fd5b505af11580156300002650573d6000803e3d6000fd5b50505050505050565b60006300002672836001600160a01b0384166300003449565b9392505050565b60608282604051806040016040528060048152602001631b5b306d60e01b81525060405160200163000026b09392919063000042a2565b604051602081830303815290604052905092915050565b6300000e5d81630000349e60201b6300002af11760201c565b6060600082600281111563000026fc5763000026fc6300003e8b565b036300002724575050604080518082019091526005815264131bd8d85b60da1b602082015290565b6001826002811115630000273e57630000273e6300003e8b565b03630000276d57505060408051808201909152600c81526b149bdb9a5b95195cdd1b995d60a21b602082015290565b600282600281111563000027875763000027876300003e8b565b0363000027b657505060408051808201909152600c81526b149bdb9a5b93585a5b9b995d60a21b602082015290565b60405162461bcd60e51b815260206004820152602480820152600080516020630000950e8339815191526044820152636e616d6560e01b60648201526084016300000f23565b60008060008051602063000094ee83398151915260001c6001600160a01b0316632f103f226040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156300002872575060408051601f3d908101601f19168201909252630000286f9181019063000040f2565b60015b63000028bf5763000028a463000002e26040518060600160405280603181526020016300009417603191396300000dd5565b5060008051602063000094ce83398151915290506300000e08565b905046830363000028d35790506300000e08565b60155460ff1663000028fa575060008051602063000094ce83398151915290506300000e08565b6000838152601760209081526040808320548352601690915290205460008051602063000094ce8339815191528114630000293a5791506300000e089050565b60405163975a6ce960e01b815260009060008051602063000094488339815191529063975a6ce99063000029749089906004016300003ed1565b600060405180830381865afa1580156300002993573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405263000029bf91908101906300003d48565b604051630637469360e31b81529091506000805160206300009448833981519152906331ba34989063000029f99084906004016300003ed1565b6020604051808303816000875af19250505080156300002a3a575060408051601f3d908101601f191682019092526300002a379181019063000040f2565b60015b6300002a92576300002a746300002a6c6040518060600160405280602b815260200163000093ec602b913963000034bf565b82630000224b565b5060008051602063000094ce83398151915292506300000e08915050565b6300002ad06300002ac8886040516020016300002ab1919063000042f1565b60408051601f198184030181529190526300003416565b8263000034f2565b93506300000e0892505050565b6000808260028111156300002af8576300002af86300003e8b565b036300002b0757506005919050565b60018260028111156300002b21576300002b216300003e8b565b036300002b3057506001919050565b60028260028111156300002b4a576300002b4a6300003e8b565b036300002b5a57506107e6919050565b60405162461bcd60e51b815260206004820152601960248201527f4e6574776f726b3a20556e6b6e6f776e20636861696e2069640000000000000060448201526064016300000f23565b60006300000e086300000f40836300003543565b606060008260028111156300002bd4576300002bd46300003e8b565b036300002bfd575050604080518082019091526006815265676f65726c6960d01b602082015290565b60018260028111156300002c17576300002c176300003e8b565b036300002c42575050604080518082019091526008815267657468657265756d60c01b602082015290565b60028260028111156300002c5c576300002c5c6300003e8b565b036300002c8b57505060408051808201909152600c81526b1c9bdb9a5b8b59195d9b995d60a21b602082015290565b60405162461bcd60e51b815260206004820152601e60248201527f4e6574776f726b3a20556e6b6e6f776e206e6574776f726b20616c696173000060448201526064016300000f23565b606060008260028111156300002cf1576300002cf16300003e8b565b036300002d1b575050604080518082019091526007815266676f65726c692f60c81b602082015290565b60018260028111156300002d35576300002d356300003e8b565b036300002d61575050604080518082019091526009815268657468657265756d2f60b81b602082015290565b60028260028111156300002d7b576300002d7b6300003e8b565b036300002dab57505060408051808201909152600d81526c726f6e696e2d6465766e65742f60981b602082015290565b60405162461bcd60e51b815260206004820152602d60248201527f4e6574776f726b3a20556e6b6e6f776e206e6574776f726b206465706c6f796d60448201526c656e74206469726563746f727960981b60648201526084016300000f23565b606060008260028111156300002e27576300002e276300003e8b565b036300002e5457505060408051808201909152600a815269544553544e45545f504b60b01b602082015290565b60028260028111156300002e6e576300002e6e6300003e8b565b036300002e9a5750506040805180820190915260098152684445564e45545f504b60b81b602082015290565b60018260028111156300002eb4576300002eb46300003e8b565b036300002ee157505060408051808201909152600a8152694d41494e4e45545f504b60b01b602082015290565b60405162461bcd60e51b815260206004820152602660248201527f4e6574776f726b3a20556e6b6e6f776e2070726976617465206b657920656e76604482015265081b1858995b60d21b60648201526084016300000f23565b606060008260028111156300002f56576300002f566300003e8b565b036300002f9657505060408051808201909152601c81527f68747470733a2f2f676f65726c692e65746865727363616e2e696f2f00000000602082015290565b60018260028111156300002fb0576300002fb06300003e8b565b036300002ff057505060408051808201909152601581527f68747470733a2f2f65746865727363616e2e696f2f0000000000000000000000602082015290565b919050565b606060006300003006836300003661565b6000848152600f602052604090208054919250906300003027906300003ad0565b80601f01602080910402602001604051908101604052809291908181526020018280546300003057906300003ad0565b801563000030ac5780601f10630000307f5761010080835404028352916020019163000030ac565b820191906000526020600020905b815481529060010190602001808311630000308d57829003601f168201915b50505050509150818051906020012081805190602001201463000030d2578063000030d4565b815b915081516000141581600f600086815260200190815260200160002060405160200163000031059291906300004353565b6040516020818303038152906040529063000031385760405162461bcd60e51b81526004016300000f2391906300003ed1565b5050919050565b630000316381600b811115630000315c57630000315c6300003e8b565b6300003689565b600f6000630000318484600b81111563000018495763000018496300003e8b565b8152602001908152602001600020908163000006be91906300003b66565b60006300000e086300000f40836300003689565b600154600090610100900460ff1663000031dd57600b546001600160a01b031663000031ea565b600c546001600160a01b03165b90506001600160a01b038116158015630000321d5750630000321d63000019d44660009081526017602052604090205490565b15630000324757507fee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f385b6001600160a01b03811663000032af5760405162461bcd60e51b815260206004820152602560248201527f47656e6572616c436f6e6669673a2053656e6465722069732061646472657373604482015264283078302960d81b60648201526084016300000f23565b90565b63000006be828260405160240163000032ce9291906300004477565b60408051601f198184030181529190526020810180516001600160e01b0390811663319af33360e01b1790915263000026c716565b6000828152601660205260408120600101546300002672906300003328846300002ff5565b6300003a37565b606082518251818111630000340e576020850194506020840193506020604051019250846001828488010301600060208410630000336c57508286205b601f841660200360031b87515b8951818118831c63000033e057831563000033b85783878c201463000033b85760018b019a50848b1063000033b0575063000033f1565b506300003379565b858b03895299860199602090980197861563000033e057848b1063000033b0575063000033f1565b5060018a019950838a106300003379575b505060408051601f198189030160051c8152602090970190525050505b505092915050565b60606300000e08604051806040016040528060058152602001641b5b39346d60d81b81525083630000267960201b60201c565b60008181526001830160205260408120546300003494575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556300000e08565b5060006300000e08565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60606300000e08604051806040016040528060058152602001641b5b39316d60d81b81525083630000267960201b60201c565b63000006be8282604051602401630000350e92919063000044a5565b60408051601f198184030181529190526020810180516001600160e01b03908116632d839cb360e21b1790915263000026c716565b60606000826002811115630000355f57630000355f6300003e8b565b036300003588575050604080518082019091526006815265476f65726c6960d01b602082015290565b600282600281111563000035a25763000035a26300003e8b565b0363000035d057505060408051808201909152600b81526a149bdb9a5b91195d9b995d60aa1b602082015290565b600182600281111563000035ea5763000035ea6300003e8b565b03630000361757505060408051808201909152600a815269115d1a13585a5b9b995d60b21b602082015290565b60405162461bcd60e51b815260206004820152601d60248201527f4e6574776f726b3a20556e6b6e6f776e206e6574776f726b206e616d6500000060448201526064016300000f23565b604080518082019091526000808252601f820183905281518201602001526060906300000e08565b6060600082600b81111563000036a55763000036a56300003e8b565b0363000036cc5750506040805180820190915260048152630ae8aa8960e31b602082015290565b600182600b81111563000036e65763000036e66300003e8b565b03630000370d5750506040805180820190915260048152632ba927a760e11b602082015290565b600282600b81111563000037275763000037276300003e8b565b03630000374d57505060408051808201909152600381526241585360e81b602082015290565b600382600b81111563000037675763000037676300003e8b565b03630000378d5750506040805180820190915260038152620534c560ec1b602082015290565b600482600b81111563000037a75763000037a76300003e8b565b0363000037ce5750506040805180820190915260048152635553444360e01b602082015290565b600582600b81111563000037e85763000037e86300003e8b565b03630000381957505060408051808201909152600e81526d427269646765547261636b696e6760901b602082015290565b600682600b81111563000038335763000038336300003e8b565b03630000386157505060408051808201909152600b81526a084e4d2c8cecaa6d8c2e6d60ab1b602082015290565b600782600b811115630000387b57630000387b6300003e8b565b0363000038aa57505060408051808201909152600c81526b109c9a5919d954995dd85c9960a21b602082015290565b600882600b81111563000038c45763000038c46300003e8b565b0363000038f557505060408051808201909152600e81526d526f6e696e47617465776179563360901b602082015290565b600982600b811115630000390f57630000390f6300003e8b565b0363000039445750506040805180820190915260128152712937b734b7213934b233b2a6b0b730b3b2b960711b602082015290565b600a82600b811115630000395e57630000395e6300003e8b565b0363000039935750506040805180820190915260128152714d61696e636861696e47617465776179563360701b602082015290565b600b82600b81111563000039ad5763000039ad6300003e8b565b0363000039ed57505060408051808201909152601681527f4d61696e636861696e4272696467654d616e6167657200000000000000000000602082015290565b60405162461bcd60e51b815260206004820152601a60248201527f436f6e74726163743a20556e6b6e6f776e20636f6e747261637400000000000060448201526064016300000f23565b60008281526012602052604080822090516300003a57908490630000419e565b90815260405160209181900382018120546001600160a01b03169250821515916300003a879185910163000044cb565b6040516020818303038152906040529063000023705760405162461bcd60e51b81526004016300000f2391906300003ed1565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806300003ae657607f821691505b6020821081036300003b0857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156300000721576000816000526020600020601f850160051c810160208610156300003b3b5750805b601f850160051c820191505b818110156300003b5e578281556001016300003b47565b505050505050565b81516001600160401b038111156300003b85576300003b856300003aba565b6300003ba1816300003b9984546300003ad0565b846300003b0e565b602080601f8311600181146300003bdc57600084156300003bc25750858301515b600019600386901b1c1916600185901b1785556300003b5e565b600085815260208120601f198616915b828110156300003c0f578886015182559484019460019091019084016300003bec565b50858210156300003c2f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60405160a081016001600160401b03811182821017156300003c67576300003c676300003aba565b60405290565b604051601f8201601f191681016001600160401b03811182821017156300003c9b576300003c9b6300003aba565b604052919050565b60005b838110156300003cc25781810151838201526020016300003ca6565b50506000910152565b600082601f8301126300003cde57600080fd5b81516001600160401b038111156300003cfd576300003cfd6300003aba565b6300003d14601f8201601f19166020016300003c6d565b8181528460208386010111156300003d2b57600080fd5b6300003d408260208301602087016300003ca3565b949350505050565b6000602082840312156300003d5c57600080fd5b81516001600160401b038111156300003d7457600080fd5b6300003d40848285016300003ccb565b600081516300003d9a8185602086016300003ca3565b9290920192915050565b6d0213637b1b590273ab6b132b91d160951b8152600085516300003dd181600e850160208a016300003ca3565b8083019050620103e160ed1b80600e8301526a02a34b6b2b9ba30b6b81d160ad1b601183015286516300003e0e81601c850160208b016300003ca3565b601c92019182018190526a023b0b990283934b1b29d160ad1b601f83015285516300003e4381602a850160208a016300003ca3565b602a920191820152700213637b1b59023b0b9902634b6b4ba1d1607d1b602d8201526300003e76603e8201856300003d84565b600560f91b8152600101979650505050505050565b634e487b7160e01b600052602160045260246000fd5b600081518084526300003ebd8160208601602086016300003ca3565b601f01601f19169290920160200192915050565b602081526000630000267260208301846300003ea1565b805180151581146300002ff057600080fd5b6000602082840312156300003f0e57600080fd5b6300002672826300003ee8565b600060208083850312156300003f3057600080fd5b82516001600160401b03808211156300003f4957600080fd5b818501915085601f8301126300003f5f57600080fd5b8151818111156300003f77576300003f776300003aba565b8060051b6300003f8a8582016300003c6d565b91825283810185019185810190898411156300003fa657600080fd5b86860192505b83831015630000409e578251858111156300003fc85760008081fd5b860160a0818c03601f19018113156300003fe25760008081fd5b6300003fee6300003c3f565b898301518881111563000040025760008081fd5b63000040148e8c838701016300003ccb565b82525060408084015189811115630000402d5760008081fd5b630000403f8f8d838801016300003ccb565b8c840152506060808501518a81168114630000405b5760008081fd5b8083850152506080915063000040748286016300003ee8565b9083015263000040878484016300003ee8565b908201528452505091860191908601906300003fac565b9998505050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000825163000040d78184602087016300003ca3565b680bcb98da185a5b925960ba1b920191825250600901919050565b600060208284031215630000410657600080fd5b5051919050565b818103818111156300000e0857634e487b7160e01b600052601160045260246000fd5b604081526000630000414760408301846300003ea1565b828103602084015260088152672e6164647265737360c01b60208201526040810191505092915050565b600060208284031215630000418557600080fd5b81516001600160a01b0381168114630000267257600080fd5b6000825163000041b48184602087016300003ca3565b9190910192915050565b60408152600063000041d560408301856300003ea1565b828103602084015263000041eb81856300003ea1565b95945050505050565b600560fb1b81526000845163000042148160018501602089016300003ca3565b602960f81b600191840191820152845163000042398160028401602089016300003ca3565b605b60f81b600292909101918201528351630000425f8160038401602088016300003ca3565b605d60f81b6003929091019182015260040195945050505050565b6001600160a01b03831681526040602082018190526000906300003d40908301846300003ea1565b6000845163000042b88184602089016300003ca3565b84519083019063000042d08183602089016300003ca3565b845191019063000042e78183602088016300003ca3565b0195945050505050565b6e02732ba3bb7b935a1b7b73334b39d1608d1b815260008251630000431f81600f8501602087016300003ca3565b7f20666f726b2063726561746564207769746820666f726b49643a000000000000600f939091019283015250602901919050565b7f436f6e7472616374436f6e66696728676574436f6e74726163744e616d65293a8152600060207f20436f6e74726163742054797065206e6f7420666f756e6420280000000000006020840152845163000043b781603a8601602089016300003ca3565b61148560f11b603a9185019182015271029ba37b930b3b2902730b6b29026b0b81d160751b603c8201528454604e9060009063000043f6816300003ad0565b60018281168015630000441457600181146300004431576300004467565b60ff198416604e880152604e831515840288010194506300004467565b8a600052602060002060005b84811015630000445c578154898201890152908301908901630000443d565b5050604e8388010194505b50929a9950505050505050505050565b604081526000630000448e60408301856300003ea1565b905060018060a01b03831660208301529392505050565b60408152600063000044bc60408301856300003ea1565b90508260208301529392505050565b7f436f6e7472616374436f6e66696728676574416464726573734279526177446181527f7461293a2041646472657373206e6f7420666f756e643a200000000000000000602082015260008251630000452d8160388501602087016300003ca3565b9190910160380192915050565b614ea180630000454b6000396000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c806379a7cfee11610151578063c9b294a1116100c3578063e26d0fb811610087578063e26d0fb81461065e578063e8dc9f9e14610671578063e8f98f8814610684578063f431103e14610697578063f55de1c0146106b7578063ff4e1d29146106ca57610274565b8063c9b294a1146105fd578063cedb75ef14610610578063cfb1418e14610625578063d3a3968614610638578063d88236271461064b57610274565b80639c8afddb116101155780639c8afddb1461055c578063a503f7f6146105a9578063a6d90726146105bc578063b3148946146105cf578063be40131f146105d7578063be657518146105ea57610274565b806379a7cfee146105085780637b3781b41461051b578063857d8fd31461052e578063871c24411461054157806387c2a5f91461055457610274565b80633147acd2116101ea57806354b975f8116101ae57806354b975f81461049e578063592a3eb3146104b15780635dd88699146104c45780635e01eb5a146104d757806362bce40b146104df578063667954fc146104e757610274565b80633147acd21461043157806334781f1e14610444578063448522d91461046557806346680400146104785780634af69e161461048b57610274565b80631bd523a61161023c5780631bd523a6146103b25780631da438e1146103c557806323cfba33146103d857806325194225146103eb578063279c966a146103fe578063310fea181461041157610274565b80630110da29146103305780630b60eb131461034e5780630ddd44721461036157806311dc119e146103745780631b0c440b14610387575b632273febf60e21b6000356001600160e01b031916016102a25760006102986106d2565b9050805160208201f35b60405162461bcd60e51b815260206004820152605060248201527f47656e6572616c436f6e6669673a20556e6b6e6f776e20696e7374727563746960448201527f6f6e2c20706c656173652072656e616d6520696e7465726661636520746f207360648201526f6861726564417267756d656e7473282960801b608482015260a4015b60405180910390fd5b005b610338610764565b6040516103459190613c4e565b60405180910390f35b61033861035c366004613d41565b610773565b61033861036f366004613da8565b61083a565b610338610382366004613ddc565b6108a2565b61039a610395366004613e34565b610b69565b6040516001600160a01b039091168152602001610345565b6103386103c0366004613e34565b610bd5565b6103386103d3366004613e34565b610d0a565b6103386103e6366004613e34565b610e0a565b6103386103f9366004613e4d565b610e2a565b61033861040c366004613e34565b610e3a565b61042461041f366004613e34565b610f37565b6040516103459190613ec2565b61032e61043f366004613e34565b610f52565b61032e610452366004613f0f565b6015805460ff1916911515919091179055565b610338610473366004613e34565b6111ba565b61032e610486366004613f31565b6112e2565b610424610499366004613e34565b611305565b61032e6104ac366004613f79565b611323565b61032e6104bf366004613fea565b6114d7565b61032e6104d23660046140a8565b61159c565b61039a6115b9565b6103386116b3565b6104fa6104f53660046140ee565b6116d5565b604051908152602001610345565b61032e610516366004614132565b611970565b6104fa610529366004614160565b611a9d565b6104fa61053c366004613e34565b611b10565b6104fa61054f366004614190565b611ba1565b6103386106d2565b60408051808201825260008082526020918201528151808301835260015460ff80821615158084526101009092041615159183019182528351908152905115159181019190915201610345565b6104fa6105b7366004613e34565b611bad565b6103386105ca3660046141ad565b611e65565b610338612176565b6103386105e5366004613e4d565b612185565b6103386105f8366004613d41565b612195565b61032e61060b3660046141e6565b61224f565b466000908152601760205260409020546104fa565b6103386106333660046141ad565b6123cc565b61039a610646366004614234565b6125db565b610338610659366004613ddc565b6125fa565b61033861066c366004613e34565b6128b4565b61033861067f366004613da8565b6129e7565b61039a610692366004613f79565b612a44565b6104fa6106a5366004613e34565b60009081526017602052604090205490565b61039a6106c53660046140a8565b612a86565b610338612ace565b6060601880546106e190614256565b80601f016020809104026020016040519081016040528092919081815260200182805461070d90614256565b801561075a5780601f1061072f5761010080835404028352916020019161075a565b820191906000526020600020905b81548152906001019060200180831161073d57829003601f168201915b5050505050905090565b6060600280546106e190614256565b6060600082600181111561078957610789614290565b1461079d576107988484611e65565b610832565b6108328484600a80546107af90614256565b80601f01602080910402602001604051908101604052809291908181526020018280546107db90614256565b80156108285780601f106107fd57610100808354040283529160200191610828565b820191906000526020600020905b81548152906001019060200180831161080b57829003601f168201915b5050505050612185565b949350505050565b60606000600c54600160a01b900460ff16600181111561085c5761085c614290565b1461087c57600c54610877906001600160a01b031683611e65565b61089c565b600b54600a805461089c926001600160a01b03169185916107af90614256565b92915050565b604080516008808252610120820190925260609160009190816020015b60608152602001906001900390816108bf5790505090506040518060400160405280600481526020016318d85cdd60e21b81525081600081518110610906576109066142a6565b6020026020010181905250604051806040016040528060068152602001651dd85b1b195d60d21b81525081600181518110610943576109436142a6565b60200260200101819052506040518060400160405280600481526020016339b4b3b760e11b8152508160028151811061097e5761097e6142a6565b6020026020010181905250604051806040016040528060068152602001652d2d66726f6d60d01b815250816003815181106109bb576109bb6142a6565b6020908102919091010152604051632b65311f60e11b81526001600160a01b0386166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa158015610a18573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a4091908101906142ec565b81600481518110610a5357610a536142a6565b60200260200101819052506040518060400160405280600d81526020016c2d2d707269766174652d6b657960981b81525081600581518110610a9757610a976142a6565b6020026020010181905250610aab83612b12565b81600681518110610abe57610abe6142a6565b60200260200101819052508381600781518110610add57610add6142a6565b6020908102919091010152604051638916046760e01b8152600080516020614e2c83398151915290638916046790610b19908490600401614334565b6000604051808303816000875af1158015610b38573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b6091908101906142ec565b95945050505050565b600080610b75836111ba565b9050805160001415610b8684612b36565b604051602001610b9691906143b4565b60405160208183030381529060405290610bc35760405162461bcd60e51b81526004016103259190613c4e565b50610bce4682612a86565b9392505050565b6000818152601060205260409020805460609190610bf290614256565b159050610c975760008281526010602052604090208054610c1290614256565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3e90614256565b8015610c8b5780601f10610c6057610100808354040283529160200191610c8b565b820191906000526020600020905b815481529060010190602001808311610c6e57829003601f168201915b50505050509050919050565b600d8054610ca490614256565b159050610ce6576000828152600f60209081526040918290209151610cd092600d9290918291016144ad565b6040516020818303038152906040529050919050565b6000828152600f60209081526040918290209151610cd09291016144e4565b919050565b6000818152601660205260409020600201805460609190610d2a90614256565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5690614256565b8015610da35780601f10610d7857610100808354040283529160200191610da3565b820191906000526020600020905b815481529060010190602001808311610d8657829003601f168201915b505050505090508051600003610d055760405162461bcd60e51b815260206004820152602660248201527f4e6574776f726b436f6e6669673a204e6574776f726b20616c696173206e6f7460448201526508199bdd5b9960d21b6064820152608401610325565b6000818152601660205260409020600501805460609190610c1290614256565b6060610832848461038285612b5c565b6000818152601660205260409020600401805460609190610e5a90614256565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8690614256565b8015610ed35780601f10610ea857610100808354040283529160200191610ed3565b820191906000526020600020905b815481529060010190602001808311610eb657829003601f168201915b505050505090508051600003610d055760405162461bcd60e51b815260206004820152602360248201527f4e6574776f726b20436f6e6669673a20454e56206c6162656c206e6f7420666f6044820152621d5b9960ea1b6064820152608401610325565b600081815260116020526040812060609190610bce90612e80565b611065610f7960405180604001604052806003815260200162051f1f60e91b815250612e8d565b6040518060400160405280600d81526020016c29bbb4ba31b434b733903a379d60991b815250611046601660008681526020019081526020016000206002018054610fc390614256565b80601f0160208091040260200160405190810160405280929190818152602001828054610fef90614256565b801561103c5780601f106110115761010080835404028352916020019161103c565b820191906000526020600020905b81548152906001019060200180831161101f57829003601f168201915b5050505050612eb6565b604051806040016040528060018152602001600560f91b815250612edf565b6000818152601660205260409020547f3650438c5b6b158a3b6da933280b9ac715c85c6e9616415bededfd3e2fa4538981016110e35760405162461bcd60e51b815260206004820152601e60248201527f4e6574776f726b20436f6e6669673a20556e65786973747320666f726b2100006044820152606401610325565b604051639ebf682760e01b815260048101829052600080516020614e2c83398151915290639ebf682790602401600060405180830381600087803b15801561112a57600080fd5b505af115801561113e573d6000803e3d6000fd5b505050600083815260166020526040902060010154461490506111ae5760405162461bcd60e51b815260206004820152602260248201527f4e6574776f726b436f6e6669673a2053776974636820636861696e206661696c604482015261195960f21b6064820152608401610325565b6111b6612f2e565b5050565b606060006111c783612b36565b6000848152600f602052604090208054919250906111e490614256565b80601f016020809104026020016040519081016040528092919081815260200182805461121090614256565b801561125d5780601f106112325761010080835404028352916020019161125d565b820191906000526020600020905b81548152906001019060200180831161124057829003601f168201915b50505050509150818051906020012081805190602001201461127f5780611281565b815b915081516000141581600f60008681526020019081526020016000206040516020016112ae929190614504565b604051602081830303815290604052906112db5760405162461bcd60e51b81526004016103259190613c4e565b5050919050565b601880546112ef90614256565b1590506112f95750565b60186111b682826145e9565b60008181526016602052604090206001015460609061089c90610f37565b60005460ff1615611332575050565b80156114b4576000611396604051806040016040528060018152602001600160fe1b81525084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506131239050565b805190915060005b818110156114b0576113ed604051806040016040528060038152602001626c6f6760e81b8152508483815181106113d7576113d76142a6565b60200260200101516131cd90919063ffffffff16565b15611403576001805460ff1916811790556114a8565b611437604051806040016040528060068152602001653a3932bd37b960d11b8152508483815181106113d7576113d76142a6565b15611450576001805461ff0019166101001790556114a8565b6114a86114896040518060400160405280601581526020017402ab739bab83837b93a32b21031b7b6b6b0b7321d1605d1b815250612eb6565b84838151811061149b5761149b6142a6565b60200260200101516131e3565b60010161139e565b5050505b60026114c18284836146a8565b506000805460ff191660011790556111b6613228565b60008681526017602052604090819020869055805160c08101909152806114fe86896116d5565b815260208082018990526040808301889052606083018790526080830186905260a09092018490526000888152601682528290208351815590830151600182015590820151600282019061155290826145e9565b506060820151600382019061156790826145e9565b506080820151600482019061157c90826145e9565b5060a0820151600582019061159190826145e9565b505050505050505050565b60008281526010602052604090206115b482826145e9565b505050565b600154600090610100900460ff166115dc57600b546001600160a01b03166115e9565b600c546001600160a01b03165b90506001600160a01b03811615801561162457506116246116164660009081526017602052604090205490565b611620600061340f565b1490565b1561164c57507fee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f385b6001600160a01b0381166116b05760405162461bcd60e51b815260206004820152602560248201527f47656e6572616c436f6e6669673a2053656e6465722069732061646472657373604482015264283078302960d81b6064820152608401610325565b90565b6040805180820190915260088152672222a82627aca2a960c11b602082015290565b6000807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b0316632f103f226040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611755575060408051601f3d908101601f1916820190925261175291810190614768565b60015b6117995761178261177d604051806060016040528060318152602001614dfb60319139612eb6565b613434565b50600080516020614e4c833981519152905061089c565b90504683036117a957905061089c565b60155460ff166117ca5750600080516020614e4c833981519152905061089c565b60008381526017602090815260408083205483526016909152902054600080516020614e4c833981519152811461180457915061089c9050565b60405163975a6ce960e01b8152600090600080516020614e2c8339815191529063975a6ce990611838908990600401613c4e565b600060405180830381865afa158015611855573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261187d91908101906142ec565b604051630637469360e31b8152909150600080516020614e2c833981519152906331ba3498906118b1908490600401613c4e565b6020604051808303816000875af19250505080156118ec575060408051601f3d908101601f191682019092526118e991810190614768565b60015b6119345761191a6119146040518060600160405280602b8152602001614dd0602b9139613477565b826131e3565b50600080516020614e4c833981519152925061089c915050565b61196561195f8860405160200161194b9190614781565b604051602081830303815290604052612e8d565b826134a0565b935061089c92505050565b6000838152601660205260408120600101549061198c846111ba565b9050811580159061199d5750805115155b611a025760405162461bcd60e51b815260206004820152603060248201527f47656e6572616c436f6e6669673a204e6574776f726b206f7220436f6e74726160448201526f18dd0812d95e481b9bdd08199bdd5b9960821b6064820152608401610325565b611a0d82848361224f565b6000828152601160205260409020611a2590846134e5565b5060008281526013602090815260408083206001600160a01b038716845282528083208790558483526012909152908190209051849190611a679084906147df565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050505050565b60008281526013602090815260408083206001600160a01b0385168452909152902054801515611acc82612b36565b604051602001611adc91906147fb565b60405160208183030381529060405290611b095760405162461bcd60e51b81526004016103259190613c4e565b5092915050565b6000818152601660205260409020547f3650438c5b6b158a3b6da933280b9ac715c85c6e9616415bededfd3e2fa453898101610d055760405162461bcd60e51b815260206004820152602a60248201527f4e6574776f726b436f6e6669673a204e6574776f726b20666f726b206973206e6044820152691bdd0818dc99585d195960b21b6064820152608401610325565b600061089c4683611a9d565b600080601660008481526020019081526020016000206040518060c00160405290816000820154815260200160018201548152602001600282018054611bf290614256565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1e90614256565b8015611c6b5780601f10611c4057610100808354040283529160200191611c6b565b820191906000526020600020905b815481529060010190602001808311611c4e57829003601f168201915b50505050508152602001600382018054611c8490614256565b80601f0160208091040260200160405190810160405280929190818152602001828054611cb090614256565b8015611cfd5780601f10611cd257610100808354040283529160200191611cfd565b820191906000526020600020905b815481529060010190602001808311611ce057829003601f168201915b50505050508152602001600482018054611d1690614256565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4290614256565b8015611d8f5780601f10611d6457610100808354040283529160200191611d8f565b820191906000526020600020905b815481529060010190602001808311611d7257829003601f168201915b50505050508152602001600582018054611da890614256565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd490614256565b8015611e215780601f10611df657610100808354040283529160200191611e21565b820191906000526020600020905b815481529060010190602001808311611e0457829003601f168201915b5050509190925250506015805460ff19166001179055509050611e4c816040015182602001516116d5565b6000938452601660205260409093208390555090919050565b604080516009808252610140820190925260609160009190816020015b6060815260200190600190039081611e825790505090506040518060400160405280600481526020016318d85cdd60e21b81525081600081518110611ec957611ec96142a6565b6020026020010181905250604051806040016040528060068152602001651dd85b1b195d60d21b81525081600181518110611f0657611f066142a6565b60200260200101819052506040518060400160405280600481526020016339b4b3b760e11b81525081600281518110611f4157611f416142a6565b6020026020010181905250604051806040016040528060068152602001652d2d66726f6d60d01b81525081600381518110611f7e57611f7e6142a6565b6020908102919091010152604051632b65311f60e11b81526001600160a01b0385166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa158015611fdb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261200391908101906142ec565b81600481518110612016576120166142a6565b6020026020010181905250604051806040016040528060088152602001671696ba3932bd37b960c11b81525081600581518110612055576120556142a6565b6020026020010181905250604051806040016040528060068152602001652d2d6461746160d01b81525081600681518110612092576120926142a6565b60200260200101819052506040518060400160405280600b81526020016a2d2d66726f6d2d66696c6560a81b815250816007815181106120d4576120d46142a6565b602002602001018190525082816008815181106120f3576120f36142a6565b6020908102919091010152604051638916046760e01b8152600080516020614e2c8339815191529063891604679061212f908490600401614334565b6000604051808303816000875af115801561214e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261083291908101906142ec565b6060601480546106e190614256565b6060610832848461065985612b5c565b606060008260018111156121ab576121ab614290565b146121ba5761079884846123cc565b6108328484600a80546121cc90614256565b80601f01602080910402602001604051908101604052809291908181526020018280546121f890614256565b80156122455780601f1061221a57610100808354040283529160200191612245565b820191906000526020600020905b81548152906001019060200180831161222857829003601f168201915b5050505050610e2a565b60405163348051d760e11b815260048101849052600080516020614e2c8339815191529063c657c7189084906122d4908490636900a3ae90602401600060405180830381865afa1580156122a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122cf91908101906142ec565b612e8d565b6122dd85612eb6565b604051632b65311f60e11b81526001600160a01b0388166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa15801561232f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261235791908101906142ec565b6040516020016123699392919061487c565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016123959291906148f6565b600060405180830381600087803b1580156123af57600080fd5b505af11580156123c3573d6000803e3d6000fd5b50505050505050565b604080516007808252610100820190925260609160009190816020015b60608152602001906001900390816123e95790505090506040518060400160405280600481526020016318d85cdd60e21b81525081600081518110612430576124306142a6565b6020026020010181905250604051806040016040528060068152602001651dd85b1b195d60d21b8152508160018151811061246d5761246d6142a6565b60200260200101819052506040518060400160405280600481526020016339b4b3b760e11b815250816002815181106124a8576124a86142a6565b6020026020010181905250604051806040016040528060068152602001652d2d66726f6d60d01b815250816003815181106124e5576124e56142a6565b6020908102919091010152604051632b65311f60e11b81526001600160a01b0385166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa158015612542573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261256a91908101906142ec565b8160048151811061257d5761257d6142a6565b6020026020010181905250604051806040016040528060088152602001671696ba3932bd37b960c11b815250816005815181106125bc576125bc6142a6565b602002602001018190525082816006815181106120f3576120f36142a6565b600082815260166020526040812060010154610bce906106c5846111ba565b60408051600a808252610160820190925260609160009190816020015b60608152602001906001900390816126175790505090506040518060400160405280600481526020016318d85cdd60e21b8152508160008151811061265e5761265e6142a6565b6020026020010181905250604051806040016040528060068152602001651dd85b1b195d60d21b8152508160018151811061269b5761269b6142a6565b60200260200101819052506040518060400160405280600481526020016339b4b3b760e11b815250816002815181106126d6576126d66142a6565b6020026020010181905250604051806040016040528060068152602001652d2d66726f6d60d01b81525081600381518110612713576127136142a6565b6020908102919091010152604051632b65311f60e11b81526001600160a01b0386166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa158015612770573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261279891908101906142ec565b816004815181106127ab576127ab6142a6565b60200260200101819052506040518060400160405280600d81526020016c2d2d707269766174652d6b657960981b815250816005815181106127ef576127ef6142a6565b602002602001018190525061280383612b12565b81600681518110612816576128166142a6565b6020026020010181905250604051806040016040528060068152602001652d2d6461746160d01b81525081600781518110612853576128536142a6565b60200260200101819052506040518060400160405280600b81526020016a2d2d66726f6d2d66696c6560a81b81525081600881518110612895576128956142a6565b60200260200101819052508381600981518110610add57610add6142a6565b6000818152601660205260408120600301805460609291906128d590614256565b80601f016020809104026020016040519081016040528092919081815260200182805461290190614256565b801561294e5780601f106129235761010080835404028352916020019161294e565b820191906000526020600020905b81548152906001019060200180831161293157829003601f168201915b5050505050905080516000036129bc5760405162461bcd60e51b815260206004820152602d60248201527f4e6574776f726b436f6e6669673a204465706c6f796d656e742064697265637460448201526c1bdc9e481b9bdd08199bdd5b99609a1b6064820152608401610325565b6014816040516020016129d092919061491a565b604051602081830303815290604052915050919050565b60606000600c54600160a01b900460ff166001811115612a0957612a09614290565b14612a2457600c54610877906001600160a01b0316836123cc565b600b54600a805461089c926001600160a01b03169185916121cc90614256565b6000610bce4684848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a8692505050565b6000828152601260205260408082209051612aa29084906147df565b90815260405160209181900382018120546001600160a01b0316925082151591611adc9185910161493f565b6040805180820190915260098152687472657a6f723a2f2f60b81b602082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6060612b1d826134fa565b8051613078825260020160011990910190815292915050565b604080518082019091526000808252601f8201839052815182016020015260609061089c565b60405163c1978d1f60e01b8152600090600080516020614e2c8339815191529063c1978d1f90612b90908590600401613c4e565b602060405180830381865afa925050508015612bc9575060408051601f3d908101601f19168201909252612bc691810190614768565b60015b61089c5760408051600380825260808201909252600091816020015b6060815260200190600190039081612be557505060405163f877cb1960e01b8152909150600080516020614e2c8339815191529063f877cb1990612c2d908690600401613c4e565b600060405180830381865afa925050508015612c6b57506040513d6000823e601f3d908101601f19168201604052612c6891908101906142ec565b60015b612ca65782604051602001612c8091906149aa565b60408051601f198184030181529082905262461bcd60e51b825261032591600401613c4e565b8082600281518110612cba57612cba6142a6565b6020026020010181905250506040518060400160405280600281526020016106f760f41b81525081600081518110612cf457612cf46142a6565b6020026020010181905250604051806040016040528060048152602001631c99585960e21b81525081600181518110612d2f57612d2f6142a6565b6020908102919091010152604051638916046760e01b8152600080516020614e2c8339815191529063fa91454d9082906371aad10d908290638916046790612d7b908890600401614334565b6000604051808303816000875af1158015612d9a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612dc291908101906142ec565b6040518263ffffffff1660e01b8152600401612dde9190613c4e565b600060405180830381865afa158015612dfb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e2391908101906142ec565b6040518263ffffffff1660e01b8152600401612e3f9190613c4e565b602060405180830381865afa158015612e5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bce9190614768565b60606000610bce8361355c565b606061089c604051806040016040528060058152602001641b5b39346d60d81b815250836135b7565b606061089c604051806040016040528060058152602001641b5b39336d60d81b815250836135b7565b612f2884848484604051602401612ef99493929190614a7f565b60408051601f198184030181529190526020810180516001600160e01b0316636f34790560e11b179052613601565b50505050565b60405163348051d760e11b81524360048201526131219061177d90600080516020614e2c83398151915290636900a3ae90602401600060405180830381865afa158015612f7f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fa791908101906142ec565b60405163348051d760e11b8152426004820152600080516020614e2c83398151915290636900a3ae90602401600060405180830381865afa158015612ff0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261301891908101906142ec565b60405163348051d760e11b81523a6004820152600080516020614e2c83398151915290636900a3ae90602401600060405180830381865afa158015613061573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261308991908101906142ec565b60405163348051d760e11b8152456004820152600080516020614e2c83398151915290636900a3ae90602401600060405180830381865afa1580156130d2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130fa91908101906142ec565b60405160200161310d9493929190614ad7565b604051602081830303815290604052612eb6565b565b60606000613131848461360a565b9050601f1960208201600183510160051b81018651838201526001845101845260005b8251606084528181146131995760405182820380825286601f8201165b8b8501810151838201528701806131715750600082820160200152603f018616810160405284525b87516020949094019301905081831061315457505050508091508251611b0957602081019150600281510382525092915050565b8051602091820120825192909101919091201490565b6111b682826040516024016131f9929190614bae565b60408051601f198184030181529190526020810180516001600160e01b0316634b5c427760e01b179052613601565b600154610100900460ff1615613349576132406136d9565b600c8054604080518082019091529182526b2a3932bd37b929b2b73232b960a11b602083015261327b9146916001600160a01b03169061224f565b604080518082018252600e81526d23b2b732b930b621b7b73334b39d60911b6020820152600c54915163028a249b60e41b81526001600160a01b03909216600483015261312191600080516020614e2c833981519152906328a249b0906024015b6000604051808303816000875af11580156132fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261332391908101906142ec565b60405180604001604052806008815260200167456e61626c65642160c01b815250613870565b4660009081526017602052604081205461336290610e3a565b905061336d816138b7565b600b5460408051808201909152600981526822a72b29b2b73232b960b91b60208201526133a79146916001600160a01b039091169061224f565b604080518082018252600e81526d23b2b732b930b621b7b73334b39d60911b6020820152600b54915163028a249b60e41b81526001600160a01b03909216600483015261340c91600080516020614e2c833981519152906328a249b0906024016132dc565b50565b600061089c61341d83613972565b6000601f600183510310601f830151029050919050565b61340c816040516024016134489190613c4e565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052613601565b606061089c604051806040016040528060058152602001641b5b39316d60d81b815250836135b7565b6111b682826040516024016134b6929190614bd3565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052613601565b6000610bce836001600160a01b038416613a84565b606060806040510190506020810160405260008152806f30313233343536373839616263646566600f52600119835b600f811651938201936001850153600f8160041c1651845360081c80613529575050819003601f19909101908152919050565b606081600001805480602002602001604051908101604052809291908181526020018280548015610c8b57602002820191906000526020600020905b8154815260200190600101908083116135985750505050509050919050565b60608282604051806040016040528060048152602001631b5b306d60e01b8152506040516020016135ea93929190614bf5565b604051602081830303815290604052905092915050565b61340c81612af1565b6060825182518181116136d157602085019450602084019350602060405101925084600182848801030160006020841061364357508286205b601f841660200360031b87515b8951818118831c6136a55783156136835783878c20146136835760018b019a50848b1061367d57506136b4565b50613650565b858b0389529986019960209098019786156136a557848b1061367d57506136b4565b5060018a019950838a10613650575b505060408051601f198189030160051c8152602090970190525050505b505092915050565b32731804c8ab1f12e6bbf3894d4083f33e07309d1f381461370b57600c80546001600160a01b0319163217905561385b565b600080516020614e2c83398151915263f877cb196137276116b3565b6040518263ffffffff1660e01b81526004016137439190613c4e565b600060405180830381865afa92505050801561378157506040513d6000823e601f3d908101601f1916820160405261377e91908101906142ec565b60015b6137a65761378d6116b3565b613795612ace565b604051602001612c80929190614c38565b600080516020614e2c83398151915263c6ce059d6137dc6137c5612ace565b604080516020810190915260008152859190613ad3565b6040518263ffffffff1660e01b81526004016137f89190613c4e565b602060405180830381865afa158015613815573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138399190614d63565b600c80546001600160a01b0319166001600160a01b0392909216919091179055505b600c805460ff60a01b1916600160a01b179055565b6115b483838360405160240161388893929190614d80565b60408051601f198184030181529190526020810180516001600160e01b0316632ced7cef60e01b179052613601565b600a6138c382826145e9565b50600c805460ff60a01b19169055600080516020614e2c83398151915263221000646138ee83612b5c565b6040518263ffffffff1660e01b815260040161390c91815260200190565b6020604051808303816000875af115801561392b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061394f9190614d63565b600b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600082600281111561398857613988614290565b036139ae575050604080518082019091526005815264131bd8d85b60da1b602082015290565b60018260028111156139c2576139c2614290565b036139ef57505060408051808201909152600c81526b149bdb9a5b95195cdd1b995d60a21b602082015290565b6002826002811115613a0357613a03614290565b03613a3057505060408051808201909152600c81526b149bdb9a5b93585a5b9b995d60a21b602082015290565b60405162461bcd60e51b8152602060048201526024808201527f44656661756c744e6574776f726b3a20556e6b6e6f776e206e6574776f726b206044820152636e616d6560e01b6064820152608401610325565b6000818152600183016020526040812054613acb5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561089c565b50600061089c565b60608351835183516020870196506020860195506020850194506020604051019350828701838311613ba557600183820301600060208510613b1457508388205b601f851660200360031b89515b8b51818118831c613b8c578315613b5b5783888e2014613b5b57808a5260019c8d019c90990198848d10613b555750613ba0565b50613b21565b60005b8b8101518b820152602001878110613b5e57509b87019b988601988715613b8c57848d10613b555750613ba0565b895260019b8c019b90980197838c10613b21575b505050505b84935060206040510194508781038585030192505b80881015613bd5578751845260209788019790930192613bba565b50506000818401908152602001604052601f19909201918252509392505050565b613121614db9565b60005b83811015613c19578181015183820152602001613c01565b50506000910152565b60008151808452613c3a816020860160208601613bfe565b601f01601f19169290920160200192915050565b602081526000610bce6020830184613c22565b6001600160a01b038116811461340c57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613cb457613cb4613c76565b604052919050565b60006001600160401b03821115613cd557613cd5613c76565b50601f01601f191660200190565b6000613cf6613cf184613cbc565b613c8c565b9050828152838383011115613d0a57600080fd5b828260208301376000602084830101529392505050565b600082601f830112613d3257600080fd5b610bce83833560208501613ce3565b600080600060608486031215613d5657600080fd5b8335613d6181613c61565b925060208401356001600160401b03811115613d7c57600080fd5b613d8886828701613d21565b925050604084013560028110613d9d57600080fd5b809150509250925092565b600060208284031215613dba57600080fd5b81356001600160401b03811115613dd057600080fd5b61083284828501613d21565b600080600060608486031215613df157600080fd5b8335613dfc81613c61565b925060208401356001600160401b03811115613e1757600080fd5b613e2386828701613d21565b925050604084013590509250925092565b600060208284031215613e4657600080fd5b5035919050565b600080600060608486031215613e6257600080fd5b8335613e6d81613c61565b925060208401356001600160401b0380821115613e8957600080fd5b613e9587838801613d21565b93506040860135915080821115613eab57600080fd5b50613eb886828701613d21565b9150509250925092565b6020808252825182820181905260009190848201906040850190845b81811015613f035783516001600160a01b031683529284019291840191600101613ede565b50909695505050505050565b600060208284031215613f2157600080fd5b81358015158114610bce57600080fd5b600060208284031215613f4357600080fd5b81356001600160401b03811115613f5957600080fd5b8201601f81018413613f6a57600080fd5b61083284823560208401613ce3565b60008060208385031215613f8c57600080fd5b82356001600160401b0380821115613fa357600080fd5b818501915085601f830112613fb757600080fd5b813581811115613fc657600080fd5b866020828501011115613fd857600080fd5b60209290920196919550909350505050565b60008060008060008060c0878903121561400357600080fd5b863595506020870135945060408701356001600160401b038082111561402857600080fd5b6140348a838b01613d21565b9550606089013591508082111561404a57600080fd5b6140568a838b01613d21565b9450608089013591508082111561406c57600080fd5b6140788a838b01613d21565b935060a089013591508082111561408e57600080fd5b5061409b89828a01613d21565b9150509295509295509295565b600080604083850312156140bb57600080fd5b8235915060208301356001600160401b038111156140d857600080fd5b6140e485828601613d21565b9150509250929050565b6000806040838503121561410157600080fd5b82356001600160401b0381111561411757600080fd5b61412385828601613d21565b95602094909401359450505050565b60008060006060848603121561414757600080fd5b83359250602084013591506040840135613d9d81613c61565b6000806040838503121561417357600080fd5b82359150602083013561418581613c61565b809150509250929050565b6000602082840312156141a257600080fd5b8135610bce81613c61565b600080604083850312156141c057600080fd5b82356141cb81613c61565b915060208301356001600160401b038111156140d857600080fd5b6000806000606084860312156141fb57600080fd5b83359250602084013561420d81613c61565b915060408401356001600160401b0381111561422857600080fd5b613eb886828701613d21565b6000806040838503121561424757600080fd5b50508035926020909101359150565b600181811c9082168061426a57607f821691505b60208210810361428a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006142ca613cf184613cbc565b90508281528383830111156142de57600080fd5b610bce836020830184613bfe565b6000602082840312156142fe57600080fd5b81516001600160401b0381111561431457600080fd5b8201601f8101841361432557600080fd5b610832848251602084016142bc565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561438b57603f19888603018452614379858351613c22565b9450928501929085019060010161435d565b5092979650505050505050565b600081516143aa818560208601613bfe565b9290920192915050565b7f436f6e7472616374436f6e666967286765744164647265737346726f6d43757281527f72656e744e6574776f726b293a20436f6e74726163742054797065206e6f74206020820152660ccdeeadcc840560cb1b604082015260008251614422816047850160208701613bfe565b602960f81b6047939091019283015250604801919050565b6000815461444781614256565b6001828116801561445f5760018114614474576144a3565b60ff19841687528215158302870194506144a3565b8560005260208060002060005b8581101561449a5781548a820152908401908201614481565b50505082870194505b5050505092915050565b60006144c26144bc838761443a565b8561443a565b641739b7b61d60d91b81526144da600582018561443a565b9695505050505050565b60006144f0828461443a565b630b9cdbdb60e21b81526004019392505050565b7f436f6e7472616374436f6e66696728676574436f6e74726163744e616d65293a81527f20436f6e74726163742054797065206e6f7420666f756e64202800000000000060208201526000835161456281603a850160208801613bfe565b61148560f11b603a9184019182015271029ba37b930b3b2902730b6b29026b0b81d160751b603c820152610b60604e82018561443a565b601f8211156115b4576000816000526020600020601f850160051c810160208610156145c25750805b601f850160051c820191505b818110156145e1578281556001016145ce565b505050505050565b81516001600160401b0381111561460257614602613c76565b614616816146108454614256565b84614599565b602080601f83116001811461464b57600084156146335750858301515b600019600386901b1c1916600185901b1785556145e1565b600085815260208120601f198616915b8281101561467a5788860151825594840194600190910190840161465b565b50858210156146985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b038311156146bf576146bf613c76565b6146d3836146cd8354614256565b83614599565b6000601f84116001811461470757600085156146ef5750838201355b600019600387901b1c1916600186901b178355614761565b600083815260209020601f19861690835b828110156147385786850135825560209485019460019092019101614718565b50868210156147555760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60006020828403121561477a57600080fd5b5051919050565b6e02732ba3bb7b935a1b7b73334b39d1608d1b8152600082516147ab81600f850160208701613bfe565b7f20666f726b2063726561746564207769746820666f726b49643a000000000000600f939091019283015250602901919050565b600082516147f1818460208701613bfe565b9190910192915050565b7f436f6e7472616374436f6e66696728676574436f6e747261637454797065427981527f52617744617461293a20436f6e747261637454797065206e6f7420666f756e64602082015261040560f31b604082015260008251614864816042850160208701613bfe565b602960f81b6042939091019283015250604301919050565b600560fb1b815260008451614898816001850160208901613bfe565b602960f81b60019184019182015284516148b9816002840160208901613bfe565b605b60f81b6002929091019182015283516148db816003840160208801613bfe565b605d60f81b6003929091019182015260040195945050505050565b6001600160a01b038316815260406020820181905260009061083290830184613c22565b6000614926828561443a565b8351614936818360208801613bfe565b01949350505050565b7f436f6e7472616374436f6e66696728676574416464726573734279526177446181527f7461293a2041646472657373206e6f7420666f756e643a20000000000000000060208201526000825161499d816038850160208701613bfe565b9190910160380192915050565b7f0a47656e6572616c436f6e6669673a204572726f722066696e64696e6720656e81527f762061646472657373210a2d20506c65617365206d616b6520602e656e76602060208201527f66696c6520616e6420637265617465206669656c642060000000000000000000604082015260008251614a2e816057850160208701613bfe565b603d60f81b60579390910192830152507f7b6f705f7365637265745f7265666572656e63655f6f725f796f75725f70726960588201526903b30ba32afb5b2bcbeb60b51b6078820152608201919050565b608081526000614a926080830187613c22565b8281036020840152614aa48187613c22565b90508281036040840152614ab88186613c22565b90508281036060840152614acc8185613c22565b979650505050505050565b6d0213637b1b590273ab6b132b91d160951b815260008551614b0081600e850160208a01613bfe565b8083019050620103e160ed1b80600e8301526a02a34b6b2b9ba30b6b81d160ad1b60118301528651614b3981601c850160208b01613bfe565b601c92019182018190526a023b0b990283934b1b29d160ad1b601f8301528551614b6a81602a850160208a01613bfe565b602a920191820152700213637b1b59023b0b9902634b6b4ba1d1607d1b602d820152614b99603e820185614398565b600560f91b8152600101979650505050505050565b604081526000614bc16040830185613c22565b8281036020840152610b608185613c22565b604081526000614be66040830185613c22565b90508260208301529392505050565b60008451614c07818460208901613bfe565b845190830190614c1b818360208901613bfe565b8451910190614c2e818360208801613bfe565b0195945050505050565b7f0a47656e6572616c436f6e6669673a204572726f722066696e64696e6720747281527f657a6f722061646472657373210a2d20506c65617365206f766572726964652060208201527f64656661756c742073656e646572207769746820602d2d73656e646572207b7960408201527f6f75725f7472657a6f725f6163636f756e747d6020746167200a2d204f72206d60608201527f616b6520602e656e76602066696c6520616e6420637265617465206669656c64608082015261010360f51b60a082015260008351614d138160a2850160208801613bfe565b603d60f81b60a2918401918201528351614d348160a3840160208801613bfe565b7503dbcb7bab92fba3932bd37b92fb0b1b1b7bab73a3eb60551b60a3929091019182015260b901949350505050565b600060208284031215614d7557600080fd5b8151610bce81613c61565b606081526000614d936060830186613c22565b8281036020840152614da58186613c22565b905082810360408401526144da8185613c22565b634e487b7160e01b600052605160045260246000fdfe4e6574776f726b436f6e6669673a2043616e6e6f742063726561746520666f726b20776974682075726c3a4e6574776f726b436f6e6669673a20666f726b206d6f64652064697361626c65642c206e6f2061637469766520666f726b0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12dc9afbc73a494ea75c49256ccd7f46538ea37a39169e9bea4121202c1d05bac77a2646970667358221220cd7459b4d7e40287665ff953eb1a3332dcd3cd08d88aeafb07e9e0448461944564736f6c634300081700334e6574776f726b436f6e6669673a2043616e6e6f742063726561746520666f726b20776974682075726c3a4e6574776f726b436f6e6669673a20666f726b206d6f64652064697361626c65642c206e6f2061637469766520666f726b0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d68747470733a2f2f736169676f6e2d6170702e726f6e696e636861696e2e636f6d2f203e206d61696e636861696e4272696467654d616e61676572436f6e74726163744e6f206465706c6f796d656e747320666f6c6465722c20736b6970206c6f6164696e67c9afbc73a494ea75c49256ccd7f46538ea37a39169e9bea4121202c1d05bac77885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d44656661756c744e6574776f726b3a20556e6b6e6f776e206e6574776f726b20) - │ │ └─ ← () - │ ├─ [1432504330] GeneralConfig::fallback() - │ │ ├─ [0] VM::toString(1) [staticcall] - │ │ │ └─ ← "1" - │ │ ├─ [0] VM::toString(1) [staticcall] - │ │ │ └─ ← "1" - │ │ ├─ [0] VM::toString(0) [staticcall] - │ │ │ └─ ← "0" - │ │ ├─ [0] VM::toString(9223372036854775807 [9.223e18]) [staticcall] - │ │ │ └─ ← "9223372036854775807" - │ │ ├─ [0] console::log("\u{1b}[93mBlock Number: 1 | Timestamp: 1 | Gas Price: 0 | Block Gas Limit: 9223372036854775807\n\u{1b}[0m") [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] VM::activeFork() [staticcall] - │ │ │ └─ ← no active fork - │ │ ├─ [0] console::log("\u{1b}[93mNetworkConfig: fork mode disabled, no active fork\u{1b}[0m") [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] VM::activeFork() [staticcall] - │ │ │ └─ ← no active fork - │ │ ├─ [0] console::log("\u{1b}[93mNetworkConfig: fork mode disabled, no active fork\u{1b}[0m") [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] VM::activeFork() [staticcall] - │ │ │ └─ ← no active fork - │ │ ├─ [0] console::log("\u{1b}[93mNetworkConfig: fork mode disabled, no active fork\u{1b}[0m") [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] VM::activeFork() [staticcall] - │ │ │ └─ ← no active fork - │ │ ├─ [0] console::log("\u{1b}[93mNetworkConfig: fork mode disabled, no active fork\u{1b}[0m") [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] VM::activeFork() [staticcall] - │ │ │ └─ ← no active fork - │ │ ├─ [0] console::log("\u{1b}[93mNetworkConfig: fork mode disabled, no active fork\u{1b}[0m") [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] VM::activeFork() [staticcall] - │ │ │ └─ ← no active fork - │ │ ├─ [0] console::log("\u{1b}[93mNetworkConfig: fork mode disabled, no active fork\u{1b}[0m") [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)ProxyAdmin[0x505d91E8fd2091794b45b27f86C045529fa92CD7]: [0x505d91E8fd2091794b45b27f86C045529fa92CD7]) [staticcall] - │ │ │ └─ ← "0x505d91E8fd2091794b45b27f86C045529fa92CD7" - │ │ ├─ [0] VM::label((2021)ProxyAdmin[0x505d91E8fd2091794b45b27f86C045529fa92CD7]: [0x505d91E8fd2091794b45b27f86C045529fa92CD7], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mProxyAdmin\u{1b}[0m[0x505d91E8fd2091794b45b27f86C045529fa92CD7]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)ProxyAdmin[0xA3e7d085E65CB0B916f6717da876b7bE5cC92f03]: [0xA3e7d085E65CB0B916f6717da876b7bE5cC92f03]) [staticcall] - │ │ │ └─ ← "0xA3e7d085E65CB0B916f6717da876b7bE5cC92f03" - │ │ ├─ [0] VM::label((2020)ProxyAdmin[0xA3e7d085E65CB0B916f6717da876b7bE5cC92f03]: [0xA3e7d085E65CB0B916f6717da876b7bE5cC92f03], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mProxyAdmin\u{1b}[0m[0xA3e7d085E65CB0B916f6717da876b7bE5cC92f03]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2021)Multicall3[0xcA11bde05977b3631167028862bE2a173976CA11]: [0xcA11bde05977b3631167028862bE2a173976CA11]) [staticcall] - │ │ │ └─ ← "0xcA11bde05977b3631167028862bE2a173976CA11" - │ │ ├─ [0] VM::label((2021)Multicall3[0xcA11bde05977b3631167028862bE2a173976CA11]: [0xcA11bde05977b3631167028862bE2a173976CA11], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mMulticall3\u{1b}[0m[0xcA11bde05977b3631167028862bE2a173976CA11]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)Multicall3[0xcA11bde05977b3631167028862bE2a173976CA11]: [0xcA11bde05977b3631167028862bE2a173976CA11]) [staticcall] - │ │ │ └─ ← "0xcA11bde05977b3631167028862bE2a173976CA11" - │ │ ├─ [0] VM::label((2021)Multicall3[0xcA11bde05977b3631167028862bE2a173976CA11]: [0xcA11bde05977b3631167028862bE2a173976CA11], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mMulticall3\u{1b}[0m[0xcA11bde05977b3631167028862bE2a173976CA11]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::computeCreateAddress(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38], 4) [staticcall] - │ │ │ └─ ← (31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496] - │ │ ├─ [0] VM::toString(31337 [3.133e4]) [staticcall] - │ │ │ └─ ← "31337" - │ │ ├─ [0] VM::toString((31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]) [staticcall] - │ │ │ └─ ← "0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496" - │ │ ├─ [0] VM::label((31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496], "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mRoninGatewayV3\u{1b}[0m[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::computeCreateAddress(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38], 5) [staticcall] - │ │ │ └─ ← (31337)RoninBridgeManager[0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3]: [0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3] - │ │ ├─ [0] VM::toString(31337 [3.133e4]) [staticcall] - │ │ │ └─ ← "31337" - │ │ ├─ [0] VM::toString((31337)RoninBridgeManager[0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3]: [0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3]) [staticcall] - │ │ │ └─ ← "0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3" - │ │ ├─ [0] VM::label((31337)RoninBridgeManager[0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3]: [0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3], "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mRoninBridgeManager\u{1b}[0m[0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::computeCreateAddress(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38], 7) [staticcall] - │ │ │ └─ ← (31337)BridgeTracking[0x50EEf481cae4250d252Ae577A09bF514f224C6C4]: [0x50EEf481cae4250d252Ae577A09bF514f224C6C4] - │ │ ├─ [0] VM::toString(31337 [3.133e4]) [staticcall] - │ │ │ └─ ← "31337" - │ │ ├─ [0] VM::toString((31337)BridgeTracking[0x50EEf481cae4250d252Ae577A09bF514f224C6C4]: [0x50EEf481cae4250d252Ae577A09bF514f224C6C4]) [staticcall] - │ │ │ └─ ← "0x50EEf481cae4250d252Ae577A09bF514f224C6C4" - │ │ ├─ [0] VM::label((31337)BridgeTracking[0x50EEf481cae4250d252Ae577A09bF514f224C6C4]: [0x50EEf481cae4250d252Ae577A09bF514f224C6C4], "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mBridgeTracking\u{1b}[0m[0x50EEf481cae4250d252Ae577A09bF514f224C6C4]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::computeCreateAddress(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38], 9) [staticcall] - │ │ │ └─ ← (31337)BridgeSlash[0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809]: [0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809] - │ │ ├─ [0] VM::toString(31337 [3.133e4]) [staticcall] - │ │ │ └─ ← "31337" - │ │ ├─ [0] VM::toString((31337)BridgeSlash[0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809]: [0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809]) [staticcall] - │ │ │ └─ ← "0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809" - │ │ ├─ [0] VM::label((31337)BridgeSlash[0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809]: [0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809], "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mBridgeSlash\u{1b}[0m[0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::computeCreateAddress(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38], 11) [staticcall] - │ │ │ └─ ← (31337)BridgeReward[0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351]: [0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351] - │ │ ├─ [0] VM::toString(31337 [3.133e4]) [staticcall] - │ │ │ └─ ← "31337" - │ │ ├─ [0] VM::toString((31337)BridgeReward[0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351]: [0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351]) [staticcall] - │ │ │ └─ ← "0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351" - │ │ ├─ [0] VM::label((31337)BridgeReward[0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351]: [0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351], "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mBridgeReward\u{1b}[0m[0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::computeCreateAddress(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38], 13) [staticcall] - │ │ │ └─ ← (31337)MainchainGatewayV3[0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB]: [0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB] - │ │ ├─ [0] VM::toString(31337 [3.133e4]) [staticcall] - │ │ │ └─ ← "31337" - │ │ ├─ [0] VM::toString((31337)MainchainGatewayV3[0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB]: [0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB]) [staticcall] - │ │ │ └─ ← "0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB" - │ │ ├─ [0] VM::label((31337)MainchainGatewayV3[0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB]: [0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB], "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mMainchainGatewayV3\u{1b}[0m[0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::computeCreateAddress(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38], 14) [staticcall] - │ │ │ └─ ← (31337)MainchainBridgeManager[0x4C52a6277b1B84121b3072C0c92b6Be0b7CC10F1]: [0x4C52a6277b1B84121b3072C0c92b6Be0b7CC10F1] - │ │ ├─ [0] VM::toString(31337 [3.133e4]) [staticcall] - │ │ │ └─ ← "31337" - │ │ ├─ [0] VM::toString((31337)MainchainBridgeManager[0x4C52a6277b1B84121b3072C0c92b6Be0b7CC10F1]: [0x4C52a6277b1B84121b3072C0c92b6Be0b7CC10F1]) [staticcall] - │ │ │ └─ ← "0x4C52a6277b1B84121b3072C0c92b6Be0b7CC10F1" - │ │ ├─ [0] VM::label((31337)MainchainBridgeManager[0x4C52a6277b1B84121b3072C0c92b6Be0b7CC10F1]: [0x4C52a6277b1B84121b3072C0c92b6Be0b7CC10F1], "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mMainchainBridgeManager\u{1b}[0m[0x4C52a6277b1B84121b3072C0c92b6Be0b7CC10F1]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::computeCreateAddress(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38], 15) [staticcall] - │ │ │ └─ ← (31337)WETH[0x978e3286EB805934215a88694d80b09aDed68D90]: [0x978e3286EB805934215a88694d80b09aDed68D90] - │ │ ├─ [0] VM::toString(31337 [3.133e4]) [staticcall] - │ │ │ └─ ← "31337" - │ │ ├─ [0] VM::toString((31337)WETH[0x978e3286EB805934215a88694d80b09aDed68D90]: [0x978e3286EB805934215a88694d80b09aDed68D90]) [staticcall] - │ │ │ └─ ← "0x978e3286EB805934215a88694d80b09aDed68D90" - │ │ ├─ [0] VM::label((31337)WETH[0x978e3286EB805934215a88694d80b09aDed68D90]: [0x978e3286EB805934215a88694d80b09aDed68D90], "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mWETH\u{1b}[0m[0x978e3286EB805934215a88694d80b09aDed68D90]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::computeCreateAddress(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38], 16) [staticcall] - │ │ │ └─ ← (31337)AXS[0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb]: [0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb] - │ │ ├─ [0] VM::toString(31337 [3.133e4]) [staticcall] - │ │ │ └─ ← "31337" - │ │ ├─ [0] VM::toString((31337)AXS[0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb]: [0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb]) [staticcall] - │ │ │ └─ ← "0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb" - │ │ ├─ [0] VM::label((31337)AXS[0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb]: [0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb], "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mAXS\u{1b}[0m[0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::computeCreateAddress(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38], 17) [staticcall] - │ │ │ └─ ← (31337)SLP[0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4]: [0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4] - │ │ ├─ [0] VM::toString(31337 [3.133e4]) [staticcall] - │ │ │ └─ ← "31337" - │ │ ├─ [0] VM::toString((31337)SLP[0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4]: [0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4]) [staticcall] - │ │ │ └─ ← "0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4" - │ │ ├─ [0] VM::label((31337)SLP[0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4]: [0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4], "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mSLP\u{1b}[0m[0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::computeCreateAddress(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38], 18) [staticcall] - │ │ │ └─ ← (31337)USDC[0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6]: [0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6] - │ │ ├─ [0] VM::toString(31337 [3.133e4]) [staticcall] - │ │ │ └─ ← "31337" - │ │ ├─ [0] VM::toString((31337)USDC[0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6]: [0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6]) [staticcall] - │ │ │ └─ ← "0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6" - │ │ ├─ [0] VM::label((31337)USDC[0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6]: [0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6], "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mUSDC\u{1b}[0m[0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6]") - │ │ │ └─ ← () - │ │ ├─ [0] console::log("Deployer", DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38]) [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] console::log(" > roninGateway", (31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]) [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] console::log(" > mainchainGateway", (31337)MainchainGatewayV3[0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB]: [0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB]) [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] console::log(" > bridgeTrackingContract", (31337)BridgeTracking[0x50EEf481cae4250d252Ae577A09bF514f224C6C4]: [0x50EEf481cae4250d252Ae577A09bF514f224C6C4]) [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] console::log(" > bridgeSlashContract", (31337)BridgeSlash[0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809]: [0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809]) [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] console::log(" > bridgeRewardContract", (31337)BridgeReward[0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351]: [0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351]) [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] console::log(" > roninBridgeManagerContract", (31337)RoninBridgeManager[0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3]: [0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3]) [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] console::log(" > mainchainBridgeManagerContract", (31337)MainchainBridgeManager[0x4C52a6277b1B84121b3072C0c92b6Be0b7CC10F1]: [0x4C52a6277b1B84121b3072C0c92b6Be0b7CC10F1]) [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] console::log(" > WETH", (31337)WETH[0x978e3286EB805934215a88694d80b09aDed68D90]: [0x978e3286EB805934215a88694d80b09aDed68D90]) [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] console::log(" > AXS", (31337)AXS[0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb]: [0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb]) [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] console::log(" > SLP", (31337)SLP[0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4]: [0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4]) [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] console::log(" > USDC", (31337)USDC[0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6]: [0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6]) [staticcall] - │ │ │ └─ ← () - │ │ ├─ [0] VM::exists("deployments/") - │ │ │ └─ ← true - │ │ ├─ [0] VM::readDir("deployments/") [staticcall] - │ │ │ └─ ← [("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum", 1, true, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli", 1, true, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet", 1, true, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-devnet", 1, true, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet", 1, true, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet", 1, true, false)] - │ │ ├─ [0] VM::readDir("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum") [staticcall] - │ │ │ └─ ← [("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/.chainId", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/MainchainBridgeManager.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/MainchainGatewayPauseEnforcer.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/MainchainGatewayV2Logic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/MainchainGatewayV3Logic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/MainchainGatewayV3Proxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/MainchainGovernanceAdmin.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/MainchainRoninTrustedOrganizationProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/RoninTrustedOrganizationLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/solcInputs", 1, true, false)] - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/.chainId") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseUint("1") [staticcall] - │ │ │ └─ ← 1 - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/MainchainBridgeManager.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (5)RoninTrustedOrganizationLogic[0xa71456fA88a5f6a4696D0446E690Db4a5913fab0]: [0xa71456fA88a5f6a4696D0446E690Db4a5913fab0] - │ │ ├─ [0] VM::toString(1) [staticcall] - │ │ │ └─ ← "1" - │ │ ├─ [0] VM::toString((5)RoninTrustedOrganizationLogic[0xa71456fA88a5f6a4696D0446E690Db4a5913fab0]: [0xa71456fA88a5f6a4696D0446E690Db4a5913fab0]) [staticcall] - │ │ │ └─ ← "0xa71456fA88a5f6a4696D0446E690Db4a5913fab0" - │ │ ├─ [0] VM::label((5)RoninTrustedOrganizationLogic[0xa71456fA88a5f6a4696D0446E690Db4a5913fab0]: [0xa71456fA88a5f6a4696D0446E690Db4a5913fab0], "(\u{1b}[94m1\u{1b}[0m)\u{1b}[93mMainchainBridgeManager\u{1b}[0m[0xa71456fA88a5f6a4696D0446E690Db4a5913fab0]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/MainchainGatewayPauseEnforcer.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (1)MainchainGatewayPauseEnforcer[0xe514d9DEB7966c8BE0ca922de8a064264eA6bcd4]: [0xe514d9DEB7966c8BE0ca922de8a064264eA6bcd4] - │ │ ├─ [0] VM::toString(1) [staticcall] - │ │ │ └─ ← "1" - │ │ ├─ [0] VM::toString((1)MainchainGatewayPauseEnforcer[0xe514d9DEB7966c8BE0ca922de8a064264eA6bcd4]: [0xe514d9DEB7966c8BE0ca922de8a064264eA6bcd4]) [staticcall] - │ │ │ └─ ← "0xe514d9DEB7966c8BE0ca922de8a064264eA6bcd4" - │ │ ├─ [0] VM::label((1)MainchainGatewayPauseEnforcer[0xe514d9DEB7966c8BE0ca922de8a064264eA6bcd4]: [0xe514d9DEB7966c8BE0ca922de8a064264eA6bcd4], "(\u{1b}[94m1\u{1b}[0m)\u{1b}[93mMainchainGatewayPauseEnforcer\u{1b}[0m[0xe514d9DEB7966c8BE0ca922de8a064264eA6bcd4]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/MainchainGatewayV2Logic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (1)MainchainGatewayV2Logic[0xa67BA5315AF4961Eb937158032AF9300C657dAcD]: [0xa67BA5315AF4961Eb937158032AF9300C657dAcD] - │ │ ├─ [0] VM::toString(1) [staticcall] - │ │ │ └─ ← "1" - │ │ ├─ [0] VM::toString((1)MainchainGatewayV2Logic[0xa67BA5315AF4961Eb937158032AF9300C657dAcD]: [0xa67BA5315AF4961Eb937158032AF9300C657dAcD]) [staticcall] - │ │ │ └─ ← "0xa67BA5315AF4961Eb937158032AF9300C657dAcD" - │ │ ├─ [0] VM::label((1)MainchainGatewayV2Logic[0xa67BA5315AF4961Eb937158032AF9300C657dAcD]: [0xa67BA5315AF4961Eb937158032AF9300C657dAcD], "(\u{1b}[94m1\u{1b}[0m)\u{1b}[93mMainchainGatewayV2Logic\u{1b}[0m[0xa67BA5315AF4961Eb937158032AF9300C657dAcD]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/MainchainGatewayV3Logic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (1)MainchainGatewayV3Logic[0x72E28A9009Ad12dE019BFF418CD210D4bbc3D403]: [0x72E28A9009Ad12dE019BFF418CD210D4bbc3D403] - │ │ ├─ [0] VM::toString(1) [staticcall] - │ │ │ └─ ← "1" - │ │ ├─ [0] VM::toString((1)MainchainGatewayV3Logic[0x72E28A9009Ad12dE019BFF418CD210D4bbc3D403]: [0x72E28A9009Ad12dE019BFF418CD210D4bbc3D403]) [staticcall] - │ │ │ └─ ← "0x72E28A9009Ad12dE019BFF418CD210D4bbc3D403" - │ │ ├─ [0] VM::label((1)MainchainGatewayV3Logic[0x72E28A9009Ad12dE019BFF418CD210D4bbc3D403]: [0x72E28A9009Ad12dE019BFF418CD210D4bbc3D403], "(\u{1b}[94m1\u{1b}[0m)\u{1b}[93mMainchainGatewayV3Logic\u{1b}[0m[0x72E28A9009Ad12dE019BFF418CD210D4bbc3D403]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/MainchainGatewayV3Proxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (1)MainchainGatewayV3[0x64192819Ac13Ef72bF6b5AE239AC672B43a9AF08]: [0x64192819Ac13Ef72bF6b5AE239AC672B43a9AF08] - │ │ ├─ [0] VM::toString(1) [staticcall] - │ │ │ └─ ← "1" - │ │ ├─ [0] VM::toString((1)MainchainGatewayV3[0x64192819Ac13Ef72bF6b5AE239AC672B43a9AF08]: [0x64192819Ac13Ef72bF6b5AE239AC672B43a9AF08]) [staticcall] - │ │ │ └─ ← "0x64192819Ac13Ef72bF6b5AE239AC672B43a9AF08" - │ │ ├─ [0] VM::label((1)MainchainGatewayV3[0x64192819Ac13Ef72bF6b5AE239AC672B43a9AF08]: [0x64192819Ac13Ef72bF6b5AE239AC672B43a9AF08], "(\u{1b}[94m1\u{1b}[0m)\u{1b}[93mMainchainGatewayV3\u{1b}[0m[0x64192819Ac13Ef72bF6b5AE239AC672B43a9AF08]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/MainchainGovernanceAdmin.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (1)MainchainGovernanceAdmin[0xB255D6A720BB7c39fee173cE22113397119cB930]: [0xB255D6A720BB7c39fee173cE22113397119cB930] - │ │ ├─ [0] VM::toString(1) [staticcall] - │ │ │ └─ ← "1" - │ │ ├─ [0] VM::toString((1)MainchainGovernanceAdmin[0xB255D6A720BB7c39fee173cE22113397119cB930]: [0xB255D6A720BB7c39fee173cE22113397119cB930]) [staticcall] - │ │ │ └─ ← "0xB255D6A720BB7c39fee173cE22113397119cB930" - │ │ ├─ [0] VM::label((1)MainchainGovernanceAdmin[0xB255D6A720BB7c39fee173cE22113397119cB930]: [0xB255D6A720BB7c39fee173cE22113397119cB930], "(\u{1b}[94m1\u{1b}[0m)\u{1b}[93mMainchainGovernanceAdmin\u{1b}[0m[0xB255D6A720BB7c39fee173cE22113397119cB930]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/MainchainRoninTrustedOrganizationProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (1)MainchainRoninTrustedOrganization[0x7D0556D55ca1a92708681e2e231733EBd922597D]: [0x7D0556D55ca1a92708681e2e231733EBd922597D] - │ │ ├─ [0] VM::toString(1) [staticcall] - │ │ │ └─ ← "1" - │ │ ├─ [0] VM::toString((1)MainchainRoninTrustedOrganization[0x7D0556D55ca1a92708681e2e231733EBd922597D]: [0x7D0556D55ca1a92708681e2e231733EBd922597D]) [staticcall] - │ │ │ └─ ← "0x7D0556D55ca1a92708681e2e231733EBd922597D" - │ │ ├─ [0] VM::label((1)MainchainRoninTrustedOrganization[0x7D0556D55ca1a92708681e2e231733EBd922597D]: [0x7D0556D55ca1a92708681e2e231733EBd922597D], "(\u{1b}[94m1\u{1b}[0m)\u{1b}[93mMainchainRoninTrustedOrganization\u{1b}[0m[0x7D0556D55ca1a92708681e2e231733EBd922597D]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ethereum/RoninTrustedOrganizationLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (1)RoninTrustedOrganizationLogic[0x9Be8BB3C6ced4C0C51b1C943Dee26a593b1E6794]: [0x9Be8BB3C6ced4C0C51b1C943Dee26a593b1E6794] - │ │ ├─ [0] VM::toString(1) [staticcall] - │ │ │ └─ ← "1" - │ │ ├─ [0] VM::toString((1)RoninTrustedOrganizationLogic[0x9Be8BB3C6ced4C0C51b1C943Dee26a593b1E6794]: [0x9Be8BB3C6ced4C0C51b1C943Dee26a593b1E6794]) [staticcall] - │ │ │ └─ ← "0x9Be8BB3C6ced4C0C51b1C943Dee26a593b1E6794" - │ │ ├─ [0] VM::label((1)RoninTrustedOrganizationLogic[0x9Be8BB3C6ced4C0C51b1C943Dee26a593b1E6794]: [0x9Be8BB3C6ced4C0C51b1C943Dee26a593b1E6794], "(\u{1b}[94m1\u{1b}[0m)\u{1b}[93mRoninTrustedOrganizationLogic\u{1b}[0m[0x9Be8BB3C6ced4C0C51b1C943Dee26a593b1E6794]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readDir("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli") [staticcall] - │ │ │ └─ ← [("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/.chainId", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/MainchainBridgeManager.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/MainchainGatewayV2Logic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/MainchainGatewayV3Proxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/MainchainGovernanceAdmin.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/MainchainRoninTrustedOrganizationProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/RoninTrustedOrganizationLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/solcInputs", 1, true, false)] - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/.chainId") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseUint("5") [staticcall] - │ │ │ └─ ← 5 - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/MainchainBridgeManager.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (5)MainchainBridgeManager[0x073de79499a1C7D474241755af8aa47e091f0664]: [0x073de79499a1C7D474241755af8aa47e091f0664] - │ │ ├─ [0] VM::toString(5) [staticcall] - │ │ │ └─ ← "5" - │ │ ├─ [0] VM::toString((5)MainchainBridgeManager[0x073de79499a1C7D474241755af8aa47e091f0664]: [0x073de79499a1C7D474241755af8aa47e091f0664]) [staticcall] - │ │ │ └─ ← "0x073de79499a1C7D474241755af8aa47e091f0664" - │ │ ├─ [0] VM::label((5)MainchainBridgeManager[0x073de79499a1C7D474241755af8aa47e091f0664]: [0x073de79499a1C7D474241755af8aa47e091f0664], "(\u{1b}[94m5\u{1b}[0m)\u{1b}[93mMainchainBridgeManager\u{1b}[0m[0x073de79499a1C7D474241755af8aa47e091f0664]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/MainchainGatewayV2Logic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (5)MainchainGatewayV2Logic[0x60fb445De9Cb26Df5fdC175c0801C5E29bf4eB64]: [0x60fb445De9Cb26Df5fdC175c0801C5E29bf4eB64] - │ │ ├─ [0] VM::toString(5) [staticcall] - │ │ │ └─ ← "5" - │ │ ├─ [0] VM::toString((5)MainchainGatewayV2Logic[0x60fb445De9Cb26Df5fdC175c0801C5E29bf4eB64]: [0x60fb445De9Cb26Df5fdC175c0801C5E29bf4eB64]) [staticcall] - │ │ │ └─ ← "0x60fb445De9Cb26Df5fdC175c0801C5E29bf4eB64" - │ │ ├─ [0] VM::label((5)MainchainGatewayV2Logic[0x60fb445De9Cb26Df5fdC175c0801C5E29bf4eB64]: [0x60fb445De9Cb26Df5fdC175c0801C5E29bf4eB64], "(\u{1b}[94m5\u{1b}[0m)\u{1b}[93mMainchainGatewayV2Logic\u{1b}[0m[0x60fb445De9Cb26Df5fdC175c0801C5E29bf4eB64]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/MainchainGatewayV3Proxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (5)MainchainGatewayV3[0x9e359F42cDDc84A386a2Ef1D9Ae06623f3970D1D]: [0x9e359F42cDDc84A386a2Ef1D9Ae06623f3970D1D] - │ │ ├─ [0] VM::toString(5) [staticcall] - │ │ │ └─ ← "5" - │ │ ├─ [0] VM::toString((5)MainchainGatewayV3[0x9e359F42cDDc84A386a2Ef1D9Ae06623f3970D1D]: [0x9e359F42cDDc84A386a2Ef1D9Ae06623f3970D1D]) [staticcall] - │ │ │ └─ ← "0x9e359F42cDDc84A386a2Ef1D9Ae06623f3970D1D" - │ │ ├─ [0] VM::label((5)MainchainGatewayV3[0x9e359F42cDDc84A386a2Ef1D9Ae06623f3970D1D]: [0x9e359F42cDDc84A386a2Ef1D9Ae06623f3970D1D], "(\u{1b}[94m5\u{1b}[0m)\u{1b}[93mMainchainGatewayV3\u{1b}[0m[0x9e359F42cDDc84A386a2Ef1D9Ae06623f3970D1D]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/MainchainGovernanceAdmin.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (5)MainchainGovernanceAdmin[0x4008b6362644C2ffB8A663d85395AAdF4056b798]: [0x4008b6362644C2ffB8A663d85395AAdF4056b798] - │ │ ├─ [0] VM::toString(5) [staticcall] - │ │ │ └─ ← "5" - │ │ ├─ [0] VM::toString((5)MainchainGovernanceAdmin[0x4008b6362644C2ffB8A663d85395AAdF4056b798]: [0x4008b6362644C2ffB8A663d85395AAdF4056b798]) [staticcall] - │ │ │ └─ ← "0x4008b6362644C2ffB8A663d85395AAdF4056b798" - │ │ ├─ [0] VM::label((5)MainchainGovernanceAdmin[0x4008b6362644C2ffB8A663d85395AAdF4056b798]: [0x4008b6362644C2ffB8A663d85395AAdF4056b798], "(\u{1b}[94m5\u{1b}[0m)\u{1b}[93mMainchainGovernanceAdmin\u{1b}[0m[0x4008b6362644C2ffB8A663d85395AAdF4056b798]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/MainchainRoninTrustedOrganizationProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (5)MainchainRoninTrustedOrganization[0xC56Eb447ACd19d5213bA0CFe39f2ACA51c60352E]: [0xC56Eb447ACd19d5213bA0CFe39f2ACA51c60352E] - │ │ ├─ [0] VM::toString(5) [staticcall] - │ │ │ └─ ← "5" - │ │ ├─ [0] VM::toString((5)MainchainRoninTrustedOrganization[0xC56Eb447ACd19d5213bA0CFe39f2ACA51c60352E]: [0xC56Eb447ACd19d5213bA0CFe39f2ACA51c60352E]) [staticcall] - │ │ │ └─ ← "0xC56Eb447ACd19d5213bA0CFe39f2ACA51c60352E" - │ │ ├─ [0] VM::label((5)MainchainRoninTrustedOrganization[0xC56Eb447ACd19d5213bA0CFe39f2ACA51c60352E]: [0xC56Eb447ACd19d5213bA0CFe39f2ACA51c60352E], "(\u{1b}[94m5\u{1b}[0m)\u{1b}[93mMainchainRoninTrustedOrganization\u{1b}[0m[0xC56Eb447ACd19d5213bA0CFe39f2ACA51c60352E]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli/RoninTrustedOrganizationLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (5)RoninTrustedOrganizationLogic[0xBA0b296d18bfA6Bc82132aA7C9bB0ecD83DD1C2E]: [0xBA0b296d18bfA6Bc82132aA7C9bB0ecD83DD1C2E] - │ │ ├─ [0] VM::toString(5) [staticcall] - │ │ │ └─ ← "5" - │ │ ├─ [0] VM::toString((5)RoninTrustedOrganizationLogic[0xBA0b296d18bfA6Bc82132aA7C9bB0ecD83DD1C2E]: [0xBA0b296d18bfA6Bc82132aA7C9bB0ecD83DD1C2E]) [staticcall] - │ │ │ └─ ← "0xBA0b296d18bfA6Bc82132aA7C9bB0ecD83DD1C2E" - │ │ ├─ [0] VM::label((5)RoninTrustedOrganizationLogic[0xBA0b296d18bfA6Bc82132aA7C9bB0ecD83DD1C2E]: [0xBA0b296d18bfA6Bc82132aA7C9bB0ecD83DD1C2E], "(\u{1b}[94m5\u{1b}[0m)\u{1b}[93mRoninTrustedOrganizationLogic\u{1b}[0m[0xBA0b296d18bfA6Bc82132aA7C9bB0ecD83DD1C2E]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readDir("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet") [staticcall] - │ │ │ └─ ← [("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet/.chainId", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet/MainchainGatewayV2Logic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet/MainchainGatewayV2Proxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet/MainchainGovernanceAdmin.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet/MainchainRoninTrustedOrganizationProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet/RoninTrustedOrganizationLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet/solcInputs", 1, true, false)] - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet/.chainId") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseUint("5") [staticcall] - │ │ │ └─ ← 5 - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet/MainchainGatewayV2Logic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (5)MainchainGatewayV2Logic[0xF54513B9C15857b4562893D3b2cBa5486ca67D55]: [0xF54513B9C15857b4562893D3b2cBa5486ca67D55] - │ │ ├─ [0] VM::toString(5) [staticcall] - │ │ │ └─ ← "5" - │ │ ├─ [0] VM::toString((5)MainchainGatewayV2Logic[0xF54513B9C15857b4562893D3b2cBa5486ca67D55]: [0xF54513B9C15857b4562893D3b2cBa5486ca67D55]) [staticcall] - │ │ │ └─ ← "0xF54513B9C15857b4562893D3b2cBa5486ca67D55" - │ │ ├─ [0] VM::label((5)MainchainGatewayV2Logic[0xF54513B9C15857b4562893D3b2cBa5486ca67D55]: [0xF54513B9C15857b4562893D3b2cBa5486ca67D55], "(\u{1b}[94m5\u{1b}[0m)\u{1b}[93mMainchainGatewayV2Logic\u{1b}[0m[0xF54513B9C15857b4562893D3b2cBa5486ca67D55]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet/MainchainGatewayV2Proxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (5)MainchainGatewayV2[0x10bdC48820E0853472A9c6f96e2c0819486ec0de]: [0x10bdC48820E0853472A9c6f96e2c0819486ec0de] - │ │ ├─ [0] VM::toString(5) [staticcall] - │ │ │ └─ ← "5" - │ │ ├─ [0] VM::toString((5)MainchainGatewayV2[0x10bdC48820E0853472A9c6f96e2c0819486ec0de]: [0x10bdC48820E0853472A9c6f96e2c0819486ec0de]) [staticcall] - │ │ │ └─ ← "0x10bdC48820E0853472A9c6f96e2c0819486ec0de" - │ │ ├─ [0] VM::label((5)MainchainGatewayV2[0x10bdC48820E0853472A9c6f96e2c0819486ec0de]: [0x10bdC48820E0853472A9c6f96e2c0819486ec0de], "(\u{1b}[94m5\u{1b}[0m)\u{1b}[93mMainchainGatewayV2\u{1b}[0m[0x10bdC48820E0853472A9c6f96e2c0819486ec0de]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet/MainchainGovernanceAdmin.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (5)MainchainGovernanceAdmin[0xb290E3276E86327AF217eA0F40fEf53f1b34D3Ac]: [0xb290E3276E86327AF217eA0F40fEf53f1b34D3Ac] - │ │ ├─ [0] VM::toString(5) [staticcall] - │ │ │ └─ ← "5" - │ │ ├─ [0] VM::toString((5)MainchainGovernanceAdmin[0xb290E3276E86327AF217eA0F40fEf53f1b34D3Ac]: [0xb290E3276E86327AF217eA0F40fEf53f1b34D3Ac]) [staticcall] - │ │ │ └─ ← "0xb290E3276E86327AF217eA0F40fEf53f1b34D3Ac" - │ │ ├─ [0] VM::label((5)MainchainGovernanceAdmin[0xb290E3276E86327AF217eA0F40fEf53f1b34D3Ac]: [0xb290E3276E86327AF217eA0F40fEf53f1b34D3Ac], "(\u{1b}[94m5\u{1b}[0m)\u{1b}[93mMainchainGovernanceAdmin\u{1b}[0m[0xb290E3276E86327AF217eA0F40fEf53f1b34D3Ac]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet/MainchainRoninTrustedOrganizationProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (5)MainchainRoninTrustedOrganization[0xA53D0a2dAC70D1fD3D9677c40636A7b50da4aB49]: [0xA53D0a2dAC70D1fD3D9677c40636A7b50da4aB49] - │ │ ├─ [0] VM::toString(5) [staticcall] - │ │ │ └─ ← "5" - │ │ ├─ [0] VM::toString((5)MainchainRoninTrustedOrganization[0xA53D0a2dAC70D1fD3D9677c40636A7b50da4aB49]: [0xA53D0a2dAC70D1fD3D9677c40636A7b50da4aB49]) [staticcall] - │ │ │ └─ ← "0xA53D0a2dAC70D1fD3D9677c40636A7b50da4aB49" - │ │ ├─ [0] VM::label((5)MainchainRoninTrustedOrganization[0xA53D0a2dAC70D1fD3D9677c40636A7b50da4aB49]: [0xA53D0a2dAC70D1fD3D9677c40636A7b50da4aB49], "(\u{1b}[94m5\u{1b}[0m)\u{1b}[93mMainchainRoninTrustedOrganization\u{1b}[0m[0xA53D0a2dAC70D1fD3D9677c40636A7b50da4aB49]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/goerli-for-devnet/RoninTrustedOrganizationLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (5)RoninTrustedOrganizationLogic[0xa71456fA88a5f6a4696D0446E690Db4a5913fab0]: [0xa71456fA88a5f6a4696D0446E690Db4a5913fab0] - │ │ ├─ [0] VM::toString(5) [staticcall] - │ │ │ └─ ← "5" - │ │ ├─ [0] VM::toString((5)RoninTrustedOrganizationLogic[0xa71456fA88a5f6a4696D0446E690Db4a5913fab0]: [0xa71456fA88a5f6a4696D0446E690Db4a5913fab0]) [staticcall] - │ │ │ └─ ← "0xa71456fA88a5f6a4696D0446E690Db4a5913fab0" - │ │ ├─ [0] VM::label((5)RoninTrustedOrganizationLogic[0xa71456fA88a5f6a4696D0446E690Db4a5913fab0]: [0xa71456fA88a5f6a4696D0446E690Db4a5913fab0], "(\u{1b}[94m5\u{1b}[0m)\u{1b}[93mRoninTrustedOrganizationLogic\u{1b}[0m[0xa71456fA88a5f6a4696D0446E690Db4a5913fab0]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readDir("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-devnet") [staticcall] - │ │ │ └─ ← [("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-devnet/.chainId", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-devnet/ProfileLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-devnet/ProfileProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-devnet/RoninGatewayV2Proxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-devnet/solcInputs", 1, true, false)] - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-devnet/.chainId") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseUint("2022") [staticcall] - │ │ │ └─ ← 2022 - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-devnet/ProfileLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2022)ProfileLogic[0x64f4E02de01F967fFFB8B29b78fb3744584839C2]: [0x64f4E02de01F967fFFB8B29b78fb3744584839C2] - │ │ ├─ [0] VM::toString(2022) [staticcall] - │ │ │ └─ ← "2022" - │ │ ├─ [0] VM::toString((2022)ProfileLogic[0x64f4E02de01F967fFFB8B29b78fb3744584839C2]: [0x64f4E02de01F967fFFB8B29b78fb3744584839C2]) [staticcall] - │ │ │ └─ ← "0x64f4E02de01F967fFFB8B29b78fb3744584839C2" - │ │ ├─ [0] VM::label((2022)ProfileLogic[0x64f4E02de01F967fFFB8B29b78fb3744584839C2]: [0x64f4E02de01F967fFFB8B29b78fb3744584839C2], "(\u{1b}[94m2022\u{1b}[0m)\u{1b}[93mProfileLogic\u{1b}[0m[0x64f4E02de01F967fFFB8B29b78fb3744584839C2]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-devnet/ProfileProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2022)Profile[0x13C132D2C7db36E50cb39ff808731f580CAea062]: [0x13C132D2C7db36E50cb39ff808731f580CAea062] - │ │ ├─ [0] VM::toString(2022) [staticcall] - │ │ │ └─ ← "2022" - │ │ ├─ [0] VM::toString((2022)Profile[0x13C132D2C7db36E50cb39ff808731f580CAea062]: [0x13C132D2C7db36E50cb39ff808731f580CAea062]) [staticcall] - │ │ │ └─ ← "0x13C132D2C7db36E50cb39ff808731f580CAea062" - │ │ ├─ [0] VM::label((2022)Profile[0x13C132D2C7db36E50cb39ff808731f580CAea062]: [0x13C132D2C7db36E50cb39ff808731f580CAea062], "(\u{1b}[94m2022\u{1b}[0m)\u{1b}[93mProfile\u{1b}[0m[0x13C132D2C7db36E50cb39ff808731f580CAea062]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-devnet/RoninGatewayV2Proxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2022)RoninGatewayV2[0x14bEbb8a09e0362f026B9f4Fb1Cd2EB508c919ba]: [0x14bEbb8a09e0362f026B9f4Fb1Cd2EB508c919ba] - │ │ ├─ [0] VM::toString(2022) [staticcall] - │ │ │ └─ ← "2022" - │ │ ├─ [0] VM::toString((2022)RoninGatewayV2[0x14bEbb8a09e0362f026B9f4Fb1Cd2EB508c919ba]: [0x14bEbb8a09e0362f026B9f4Fb1Cd2EB508c919ba]) [staticcall] - │ │ │ └─ ← "0x14bEbb8a09e0362f026B9f4Fb1Cd2EB508c919ba" - │ │ ├─ [0] VM::label((2022)RoninGatewayV2[0x14bEbb8a09e0362f026B9f4Fb1Cd2EB508c919ba]: [0x14bEbb8a09e0362f026B9f4Fb1Cd2EB508c919ba], "(\u{1b}[94m2022\u{1b}[0m)\u{1b}[93mRoninGatewayV2\u{1b}[0m[0x14bEbb8a09e0362f026B9f4Fb1Cd2EB508c919ba]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readDir("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet") [staticcall] - │ │ │ └─ ← [("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/.chainId", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/BridgeRewardLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/BridgeRewardProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/BridgeSlashLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/BridgeSlashProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/BridgeTrackingLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/BridgeTrackingProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/FastFinalityTrackingLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/FastFinalityTrackingProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/MaintenanceLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/MaintenanceProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/ProfileLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/ProfileProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninBridgeManager.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninGatewayPauseEnforcer.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninGatewayV2Logic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninGatewayV3Logic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninGatewayV3Proxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninGovernanceAdmin.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninTrustedOrganizationLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninTrustedOrganizationProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninValidatorSetLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninValidatorSetProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/SlashIndicatorLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/SlashIndicatorProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/StakingLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/StakingProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/StakingVestingLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/StakingVestingProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/solcInputs", 1, true, false)] - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/.chainId") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseUint("2020") [staticcall] - │ │ │ └─ ← 2020 - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/BridgeRewardLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)BridgeRewardLogic[0x6d457615C1B08ab8d5ec2a0410440E23A17F7c38]: [0x6d457615C1B08ab8d5ec2a0410440E23A17F7c38] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)BridgeRewardLogic[0x6d457615C1B08ab8d5ec2a0410440E23A17F7c38]: [0x6d457615C1B08ab8d5ec2a0410440E23A17F7c38]) [staticcall] - │ │ │ └─ ← "0x6d457615C1B08ab8d5ec2a0410440E23A17F7c38" - │ │ ├─ [0] VM::label((2020)BridgeRewardLogic[0x6d457615C1B08ab8d5ec2a0410440E23A17F7c38]: [0x6d457615C1B08ab8d5ec2a0410440E23A17F7c38], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mBridgeRewardLogic\u{1b}[0m[0x6d457615C1B08ab8d5ec2a0410440E23A17F7c38]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/BridgeRewardProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)BridgeReward[0x796A163A21e9a659fc9773166e0AfDC1eB01aaD1]: [0x796A163A21e9a659fc9773166e0AfDC1eB01aaD1] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)BridgeReward[0x796A163A21e9a659fc9773166e0AfDC1eB01aaD1]: [0x796A163A21e9a659fc9773166e0AfDC1eB01aaD1]) [staticcall] - │ │ │ └─ ← "0x796A163A21e9a659fc9773166e0AfDC1eB01aaD1" - │ │ ├─ [0] VM::label((2020)BridgeReward[0x796A163A21e9a659fc9773166e0AfDC1eB01aaD1]: [0x796A163A21e9a659fc9773166e0AfDC1eB01aaD1], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mBridgeReward\u{1b}[0m[0x796A163A21e9a659fc9773166e0AfDC1eB01aaD1]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/BridgeSlashLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)BridgeSlashLogic[0x763e39d39a59BE7458147C7129fB044B34Ab4Ca4]: [0x763e39d39a59BE7458147C7129fB044B34Ab4Ca4] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)BridgeSlashLogic[0x763e39d39a59BE7458147C7129fB044B34Ab4Ca4]: [0x763e39d39a59BE7458147C7129fB044B34Ab4Ca4]) [staticcall] - │ │ │ └─ ← "0x763e39d39a59BE7458147C7129fB044B34Ab4Ca4" - │ │ ├─ [0] VM::label((2020)BridgeSlashLogic[0x763e39d39a59BE7458147C7129fB044B34Ab4Ca4]: [0x763e39d39a59BE7458147C7129fB044B34Ab4Ca4], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mBridgeSlashLogic\u{1b}[0m[0x763e39d39a59BE7458147C7129fB044B34Ab4Ca4]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/BridgeSlashProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)BridgeSlash[0x273cdA3AFE17eB7BcB028b058382A9010ae82B24]: [0x273cdA3AFE17eB7BcB028b058382A9010ae82B24] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)BridgeSlash[0x273cdA3AFE17eB7BcB028b058382A9010ae82B24]: [0x273cdA3AFE17eB7BcB028b058382A9010ae82B24]) [staticcall] - │ │ │ └─ ← "0x273cdA3AFE17eB7BcB028b058382A9010ae82B24" - │ │ ├─ [0] VM::label((2020)BridgeSlash[0x273cdA3AFE17eB7BcB028b058382A9010ae82B24]: [0x273cdA3AFE17eB7BcB028b058382A9010ae82B24], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mBridgeSlash\u{1b}[0m[0x273cdA3AFE17eB7BcB028b058382A9010ae82B24]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/BridgeTrackingLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)BridgeTrackingLogic[0xe4CcF400e99Cb07Eb76D3a169532916069B7DC32]: [0xe4CcF400e99Cb07Eb76D3a169532916069B7DC32] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)BridgeTrackingLogic[0xe4CcF400e99Cb07Eb76D3a169532916069B7DC32]: [0xe4CcF400e99Cb07Eb76D3a169532916069B7DC32]) [staticcall] - │ │ │ └─ ← "0xe4CcF400e99Cb07Eb76D3a169532916069B7DC32" - │ │ ├─ [0] VM::label((2020)BridgeTrackingLogic[0xe4CcF400e99Cb07Eb76D3a169532916069B7DC32]: [0xe4CcF400e99Cb07Eb76D3a169532916069B7DC32], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mBridgeTrackingLogic\u{1b}[0m[0xe4CcF400e99Cb07Eb76D3a169532916069B7DC32]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/BridgeTrackingProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)BridgeTracking[0x3Fb325b251eE80945d3fc8c7692f5aFFCA1B8bC2]: [0x3Fb325b251eE80945d3fc8c7692f5aFFCA1B8bC2] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)BridgeTracking[0x3Fb325b251eE80945d3fc8c7692f5aFFCA1B8bC2]: [0x3Fb325b251eE80945d3fc8c7692f5aFFCA1B8bC2]) [staticcall] - │ │ │ └─ ← "0x3Fb325b251eE80945d3fc8c7692f5aFFCA1B8bC2" - │ │ ├─ [0] VM::label((2020)BridgeTracking[0x3Fb325b251eE80945d3fc8c7692f5aFFCA1B8bC2]: [0x3Fb325b251eE80945d3fc8c7692f5aFFCA1B8bC2], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mBridgeTracking\u{1b}[0m[0x3Fb325b251eE80945d3fc8c7692f5aFFCA1B8bC2]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/FastFinalityTrackingLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)FastFinalityTrackingLogic[0x241e507363d674c77a9930F31ea26BBc8857949c]: [0x241e507363d674c77a9930F31ea26BBc8857949c] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)FastFinalityTrackingLogic[0x241e507363d674c77a9930F31ea26BBc8857949c]: [0x241e507363d674c77a9930F31ea26BBc8857949c]) [staticcall] - │ │ │ └─ ← "0x241e507363d674c77a9930F31ea26BBc8857949c" - │ │ ├─ [0] VM::label((2020)FastFinalityTrackingLogic[0x241e507363d674c77a9930F31ea26BBc8857949c]: [0x241e507363d674c77a9930F31ea26BBc8857949c], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mFastFinalityTrackingLogic\u{1b}[0m[0x241e507363d674c77a9930F31ea26BBc8857949c]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/FastFinalityTrackingProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)FastFinalityTracking[0xA30B2932CD8b8A89E34551Cdfa13810af38dA576]: [0xA30B2932CD8b8A89E34551Cdfa13810af38dA576] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)FastFinalityTracking[0xA30B2932CD8b8A89E34551Cdfa13810af38dA576]: [0xA30B2932CD8b8A89E34551Cdfa13810af38dA576]) [staticcall] - │ │ │ └─ ← "0xA30B2932CD8b8A89E34551Cdfa13810af38dA576" - │ │ ├─ [0] VM::label((2020)FastFinalityTracking[0xA30B2932CD8b8A89E34551Cdfa13810af38dA576]: [0xA30B2932CD8b8A89E34551Cdfa13810af38dA576], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mFastFinalityTracking\u{1b}[0m[0xA30B2932CD8b8A89E34551Cdfa13810af38dA576]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/MaintenanceLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)MaintenanceLogic[0xca9F10769292F26850333264d618c1B5E91f394D]: [0xca9F10769292F26850333264d618c1B5E91f394D] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)MaintenanceLogic[0xca9F10769292F26850333264d618c1B5E91f394D]: [0xca9F10769292F26850333264d618c1B5E91f394D]) [staticcall] - │ │ │ └─ ← "0xca9F10769292F26850333264d618c1B5E91f394D" - │ │ ├─ [0] VM::label((2020)MaintenanceLogic[0xca9F10769292F26850333264d618c1B5E91f394D]: [0xca9F10769292F26850333264d618c1B5E91f394D], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mMaintenanceLogic\u{1b}[0m[0xca9F10769292F26850333264d618c1B5E91f394D]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/MaintenanceProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)Maintenance[0x6F45C1f8d84849D497C6C0Ac4c3842DC82f49894]: [0x6F45C1f8d84849D497C6C0Ac4c3842DC82f49894] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)Maintenance[0x6F45C1f8d84849D497C6C0Ac4c3842DC82f49894]: [0x6F45C1f8d84849D497C6C0Ac4c3842DC82f49894]) [staticcall] - │ │ │ └─ ← "0x6F45C1f8d84849D497C6C0Ac4c3842DC82f49894" - │ │ ├─ [0] VM::label((2020)Maintenance[0x6F45C1f8d84849D497C6C0Ac4c3842DC82f49894]: [0x6F45C1f8d84849D497C6C0Ac4c3842DC82f49894], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mMaintenance\u{1b}[0m[0x6F45C1f8d84849D497C6C0Ac4c3842DC82f49894]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/ProfileLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)ProfileLogic[0x3EC92e7a835bb58832Df64E7f8206467e07d54a3]: [0x3EC92e7a835bb58832Df64E7f8206467e07d54a3] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)ProfileLogic[0x3EC92e7a835bb58832Df64E7f8206467e07d54a3]: [0x3EC92e7a835bb58832Df64E7f8206467e07d54a3]) [staticcall] - │ │ │ └─ ← "0x3EC92e7a835bb58832Df64E7f8206467e07d54a3" - │ │ ├─ [0] VM::label((2020)ProfileLogic[0x3EC92e7a835bb58832Df64E7f8206467e07d54a3]: [0x3EC92e7a835bb58832Df64E7f8206467e07d54a3], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mProfileLogic\u{1b}[0m[0x3EC92e7a835bb58832Df64E7f8206467e07d54a3]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/ProfileProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)Profile[0x840EBf1CA767CB690029E91856A357a43B85d035]: [0x840EBf1CA767CB690029E91856A357a43B85d035] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)Profile[0x840EBf1CA767CB690029E91856A357a43B85d035]: [0x840EBf1CA767CB690029E91856A357a43B85d035]) [staticcall] - │ │ │ └─ ← "0x840EBf1CA767CB690029E91856A357a43B85d035" - │ │ ├─ [0] VM::label((2020)Profile[0x840EBf1CA767CB690029E91856A357a43B85d035]: [0x840EBf1CA767CB690029E91856A357a43B85d035], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mProfile\u{1b}[0m[0x840EBf1CA767CB690029E91856A357a43B85d035]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninBridgeManager.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)RoninBridgeManager[0x5FA49E6CA54a9daa8eCa4F403ADBDE5ee075D84a]: [0x5FA49E6CA54a9daa8eCa4F403ADBDE5ee075D84a] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)RoninBridgeManager[0x5FA49E6CA54a9daa8eCa4F403ADBDE5ee075D84a]: [0x5FA49E6CA54a9daa8eCa4F403ADBDE5ee075D84a]) [staticcall] - │ │ │ └─ ← "0x5FA49E6CA54a9daa8eCa4F403ADBDE5ee075D84a" - │ │ ├─ [0] VM::label((2020)RoninBridgeManager[0x5FA49E6CA54a9daa8eCa4F403ADBDE5ee075D84a]: [0x5FA49E6CA54a9daa8eCa4F403ADBDE5ee075D84a], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mRoninBridgeManager\u{1b}[0m[0x5FA49E6CA54a9daa8eCa4F403ADBDE5ee075D84a]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninGatewayPauseEnforcer.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)RoninGatewayPauseEnforcer[0x2367cD5468c2b3cD18aA74AdB7e14E43426aF837]: [0x2367cD5468c2b3cD18aA74AdB7e14E43426aF837] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)RoninGatewayPauseEnforcer[0x2367cD5468c2b3cD18aA74AdB7e14E43426aF837]: [0x2367cD5468c2b3cD18aA74AdB7e14E43426aF837]) [staticcall] - │ │ │ └─ ← "0x2367cD5468c2b3cD18aA74AdB7e14E43426aF837" - │ │ ├─ [0] VM::label((2020)RoninGatewayPauseEnforcer[0x2367cD5468c2b3cD18aA74AdB7e14E43426aF837]: [0x2367cD5468c2b3cD18aA74AdB7e14E43426aF837], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mRoninGatewayPauseEnforcer\u{1b}[0m[0x2367cD5468c2b3cD18aA74AdB7e14E43426aF837]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninGatewayV2Logic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)RoninGatewayV2Logic[0x3036EB56e7e28851a56B87F037101aB3630933ab]: [0x3036EB56e7e28851a56B87F037101aB3630933ab] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)RoninGatewayV2Logic[0x3036EB56e7e28851a56B87F037101aB3630933ab]: [0x3036EB56e7e28851a56B87F037101aB3630933ab]) [staticcall] - │ │ │ └─ ← "0x3036EB56e7e28851a56B87F037101aB3630933ab" - │ │ ├─ [0] VM::label((2020)RoninGatewayV2Logic[0x3036EB56e7e28851a56B87F037101aB3630933ab]: [0x3036EB56e7e28851a56B87F037101aB3630933ab], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mRoninGatewayV2Logic\u{1b}[0m[0x3036EB56e7e28851a56B87F037101aB3630933ab]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninGatewayV3Logic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)RoninGatewayV3Logic[0x1477DB6bF449B0eb1191a1F4023867ddCEadc504]: [0x1477DB6bF449B0eb1191a1F4023867ddCEadc504] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)RoninGatewayV3Logic[0x1477DB6bF449B0eb1191a1F4023867ddCEadc504]: [0x1477DB6bF449B0eb1191a1F4023867ddCEadc504]) [staticcall] - │ │ │ └─ ← "0x1477DB6bF449B0eb1191a1F4023867ddCEadc504" - │ │ ├─ [0] VM::label((2020)RoninGatewayV3Logic[0x1477DB6bF449B0eb1191a1F4023867ddCEadc504]: [0x1477DB6bF449B0eb1191a1F4023867ddCEadc504], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mRoninGatewayV3Logic\u{1b}[0m[0x1477DB6bF449B0eb1191a1F4023867ddCEadc504]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninGatewayV3Proxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)RoninGatewayV3[0x0CF8fF40a508bdBc39fBe1Bb679dCBa64E65C7Df]: [0x0CF8fF40a508bdBc39fBe1Bb679dCBa64E65C7Df] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)RoninGatewayV3[0x0CF8fF40a508bdBc39fBe1Bb679dCBa64E65C7Df]: [0x0CF8fF40a508bdBc39fBe1Bb679dCBa64E65C7Df]) [staticcall] - │ │ │ └─ ← "0x0CF8fF40a508bdBc39fBe1Bb679dCBa64E65C7Df" - │ │ ├─ [0] VM::label((2020)RoninGatewayV3[0x0CF8fF40a508bdBc39fBe1Bb679dCBa64E65C7Df]: [0x0CF8fF40a508bdBc39fBe1Bb679dCBa64E65C7Df], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mRoninGatewayV3\u{1b}[0m[0x0CF8fF40a508bdBc39fBe1Bb679dCBa64E65C7Df]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninGovernanceAdmin.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)RoninGovernanceAdmin[0x946397deDFd2f79b75a72B322944a21C3240c9c3]: [0x946397deDFd2f79b75a72B322944a21C3240c9c3] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)RoninGovernanceAdmin[0x946397deDFd2f79b75a72B322944a21C3240c9c3]: [0x946397deDFd2f79b75a72B322944a21C3240c9c3]) [staticcall] - │ │ │ └─ ← "0x946397deDFd2f79b75a72B322944a21C3240c9c3" - │ │ ├─ [0] VM::label((2020)RoninGovernanceAdmin[0x946397deDFd2f79b75a72B322944a21C3240c9c3]: [0x946397deDFd2f79b75a72B322944a21C3240c9c3], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mRoninGovernanceAdmin\u{1b}[0m[0x946397deDFd2f79b75a72B322944a21C3240c9c3]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninTrustedOrganizationLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)RoninTrustedOrganizationLogic[0x0AaDA85A2b3c9fb1be158D43e71cdcca6Fe85e02]: [0x0AaDA85A2b3c9fb1be158D43e71cdcca6Fe85e02] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)RoninTrustedOrganizationLogic[0x0AaDA85A2b3c9fb1be158D43e71cdcca6Fe85e02]: [0x0AaDA85A2b3c9fb1be158D43e71cdcca6Fe85e02]) [staticcall] - │ │ │ └─ ← "0x0AaDA85A2b3c9fb1be158D43e71cdcca6Fe85e02" - │ │ ├─ [0] VM::label((2020)RoninTrustedOrganizationLogic[0x0AaDA85A2b3c9fb1be158D43e71cdcca6Fe85e02]: [0x0AaDA85A2b3c9fb1be158D43e71cdcca6Fe85e02], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mRoninTrustedOrganizationLogic\u{1b}[0m[0x0AaDA85A2b3c9fb1be158D43e71cdcca6Fe85e02]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninTrustedOrganizationProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)RoninTrustedOrganization[0x98D0230884448B3E2f09a177433D60fb1E19C090]: [0x98D0230884448B3E2f09a177433D60fb1E19C090] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)RoninTrustedOrganization[0x98D0230884448B3E2f09a177433D60fb1E19C090]: [0x98D0230884448B3E2f09a177433D60fb1E19C090]) [staticcall] - │ │ │ └─ ← "0x98D0230884448B3E2f09a177433D60fb1E19C090" - │ │ ├─ [0] VM::label((2020)RoninTrustedOrganization[0x98D0230884448B3E2f09a177433D60fb1E19C090]: [0x98D0230884448B3E2f09a177433D60fb1E19C090], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mRoninTrustedOrganization\u{1b}[0m[0x98D0230884448B3E2f09a177433D60fb1E19C090]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninValidatorSetLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)RoninValidatorSetLogic[0x0C1Dee1b435C464b4E94781f94F991Cb90e3399d]: [0x0C1Dee1b435C464b4E94781f94F991Cb90e3399d] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)RoninValidatorSetLogic[0x0C1Dee1b435C464b4E94781f94F991Cb90e3399d]: [0x0C1Dee1b435C464b4E94781f94F991Cb90e3399d]) [staticcall] - │ │ │ └─ ← "0x0C1Dee1b435C464b4E94781f94F991Cb90e3399d" - │ │ ├─ [0] VM::label((2020)RoninValidatorSetLogic[0x0C1Dee1b435C464b4E94781f94F991Cb90e3399d]: [0x0C1Dee1b435C464b4E94781f94F991Cb90e3399d], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mRoninValidatorSetLogic\u{1b}[0m[0x0C1Dee1b435C464b4E94781f94F991Cb90e3399d]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/RoninValidatorSetProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)RoninValidatorSet[0x617c5d73662282EA7FfD231E020eCa6D2B0D552f]: [0x617c5d73662282EA7FfD231E020eCa6D2B0D552f] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)RoninValidatorSet[0x617c5d73662282EA7FfD231E020eCa6D2B0D552f]: [0x617c5d73662282EA7FfD231E020eCa6D2B0D552f]) [staticcall] - │ │ │ └─ ← "0x617c5d73662282EA7FfD231E020eCa6D2B0D552f" - │ │ ├─ [0] VM::label((2020)RoninValidatorSet[0x617c5d73662282EA7FfD231E020eCa6D2B0D552f]: [0x617c5d73662282EA7FfD231E020eCa6D2B0D552f], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mRoninValidatorSet\u{1b}[0m[0x617c5d73662282EA7FfD231E020eCa6D2B0D552f]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/SlashIndicatorLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)SlashIndicatorLogic[0x440BAF1c4B008EE4D617A83401f06AA80f5163E9]: [0x440BAF1c4B008EE4D617A83401f06AA80f5163E9] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)SlashIndicatorLogic[0x440BAF1c4B008EE4D617A83401f06AA80f5163E9]: [0x440BAF1c4B008EE4D617A83401f06AA80f5163E9]) [staticcall] - │ │ │ └─ ← "0x440BAF1c4B008EE4D617A83401f06AA80f5163E9" - │ │ ├─ [0] VM::label((2020)SlashIndicatorLogic[0x440BAF1c4B008EE4D617A83401f06AA80f5163E9]: [0x440BAF1c4B008EE4D617A83401f06AA80f5163E9], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mSlashIndicatorLogic\u{1b}[0m[0x440BAF1c4B008EE4D617A83401f06AA80f5163E9]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/SlashIndicatorProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)SlashIndicator[0xEBFFF2b32fA0dF9C5C8C5d5AAa7e8b51d5207bA3]: [0xEBFFF2b32fA0dF9C5C8C5d5AAa7e8b51d5207bA3] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)SlashIndicator[0xEBFFF2b32fA0dF9C5C8C5d5AAa7e8b51d5207bA3]: [0xEBFFF2b32fA0dF9C5C8C5d5AAa7e8b51d5207bA3]) [staticcall] - │ │ │ └─ ← "0xEBFFF2b32fA0dF9C5C8C5d5AAa7e8b51d5207bA3" - │ │ ├─ [0] VM::label((2020)SlashIndicator[0xEBFFF2b32fA0dF9C5C8C5d5AAa7e8b51d5207bA3]: [0xEBFFF2b32fA0dF9C5C8C5d5AAa7e8b51d5207bA3], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mSlashIndicator\u{1b}[0m[0xEBFFF2b32fA0dF9C5C8C5d5AAa7e8b51d5207bA3]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/StakingLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)StakingLogic[0x8Ae952d538e9c25120e9c75FBA0718750f81313a]: [0x8Ae952d538e9c25120e9c75FBA0718750f81313a] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)StakingLogic[0x8Ae952d538e9c25120e9c75FBA0718750f81313a]: [0x8Ae952d538e9c25120e9c75FBA0718750f81313a]) [staticcall] - │ │ │ └─ ← "0x8Ae952d538e9c25120e9c75FBA0718750f81313a" - │ │ ├─ [0] VM::label((2020)StakingLogic[0x8Ae952d538e9c25120e9c75FBA0718750f81313a]: [0x8Ae952d538e9c25120e9c75FBA0718750f81313a], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mStakingLogic\u{1b}[0m[0x8Ae952d538e9c25120e9c75FBA0718750f81313a]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/StakingProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)Staking[0x545edb750eB8769C868429BE9586F5857A768758]: [0x545edb750eB8769C868429BE9586F5857A768758] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)Staking[0x545edb750eB8769C868429BE9586F5857A768758]: [0x545edb750eB8769C868429BE9586F5857A768758]) [staticcall] - │ │ │ └─ ← "0x545edb750eB8769C868429BE9586F5857A768758" - │ │ ├─ [0] VM::label((2020)Staking[0x545edb750eB8769C868429BE9586F5857A768758]: [0x545edb750eB8769C868429BE9586F5857A768758], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mStaking\u{1b}[0m[0x545edb750eB8769C868429BE9586F5857A768758]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/StakingVestingLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)StakingVestingLogic[0x7CcBb3CD1b19BC1f1d5B7048400D41B1b796AbAd]: [0x7CcBb3CD1b19BC1f1d5B7048400D41B1b796AbAd] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)StakingVestingLogic[0x7CcBb3CD1b19BC1f1d5B7048400D41B1b796AbAd]: [0x7CcBb3CD1b19BC1f1d5B7048400D41B1b796AbAd]) [staticcall] - │ │ │ └─ ← "0x7CcBb3CD1b19BC1f1d5B7048400D41B1b796AbAd" - │ │ ├─ [0] VM::label((2020)StakingVestingLogic[0x7CcBb3CD1b19BC1f1d5B7048400D41B1b796AbAd]: [0x7CcBb3CD1b19BC1f1d5B7048400D41B1b796AbAd], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mStakingVestingLogic\u{1b}[0m[0x7CcBb3CD1b19BC1f1d5B7048400D41B1b796AbAd]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-mainnet/StakingVestingProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2020)StakingVesting[0xC768423A2AE2B5024cB58F3d6449A8f5DB6D8816]: [0xC768423A2AE2B5024cB58F3d6449A8f5DB6D8816] - │ │ ├─ [0] VM::toString(2020) [staticcall] - │ │ │ └─ ← "2020" - │ │ ├─ [0] VM::toString((2020)StakingVesting[0xC768423A2AE2B5024cB58F3d6449A8f5DB6D8816]: [0xC768423A2AE2B5024cB58F3d6449A8f5DB6D8816]) [staticcall] - │ │ │ └─ ← "0xC768423A2AE2B5024cB58F3d6449A8f5DB6D8816" - │ │ ├─ [0] VM::label((2020)StakingVesting[0xC768423A2AE2B5024cB58F3d6449A8f5DB6D8816]: [0xC768423A2AE2B5024cB58F3d6449A8f5DB6D8816], "(\u{1b}[94m2020\u{1b}[0m)\u{1b}[93mStakingVesting\u{1b}[0m[0xC768423A2AE2B5024cB58F3d6449A8f5DB6D8816]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readDir("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet") [staticcall] - │ │ │ └─ ← [("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/.chainId", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/BridgeRewardLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/BridgeRewardProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/BridgeSlashLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/BridgeSlashProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/BridgeTrackingLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/BridgeTrackingProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/FastFinalityTrackingLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/FastFinalityTrackingProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/ForwarderLogic-0.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/ForwarderLogic-1.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/ForwarderLogic-2.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/ForwarderLogic-3.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/ForwarderLogic-4.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/MaintenanceLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/MaintenanceProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/ProfileLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/ProfileProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninBridgeManager.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninGatewayPauseEnforcer.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninGatewayPauseEnforcerLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninGatewayPauseEnforcerProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninGatewayV2Logic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninGovernanceAdmin.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninTrustedOrganizationLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninTrustedOrganizationProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninValidatorSetLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninValidatorSetProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninValidatorSetTimedMigrator.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/SlashIndicatorLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/SlashIndicatorProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/StakingLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/StakingProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/StakingVestingLogic.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/StakingVestingProxy.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/VaultForwarder-qc-test.json", 1, false, false), ("", "/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/solcInputs", 1, true, false)] - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/.chainId") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseUint("2021") [staticcall] - │ │ │ └─ ← 2021 - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/BridgeRewardLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)BridgeRewardLogic[0xa316e3dDa5B0DECC0c6528EDE4595831794c089A]: [0xa316e3dDa5B0DECC0c6528EDE4595831794c089A] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)BridgeRewardLogic[0xa316e3dDa5B0DECC0c6528EDE4595831794c089A]: [0xa316e3dDa5B0DECC0c6528EDE4595831794c089A]) [staticcall] - │ │ │ └─ ← "0xa316e3dDa5B0DECC0c6528EDE4595831794c089A" - │ │ ├─ [0] VM::label((2021)BridgeRewardLogic[0xa316e3dDa5B0DECC0c6528EDE4595831794c089A]: [0xa316e3dDa5B0DECC0c6528EDE4595831794c089A], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mBridgeRewardLogic\u{1b}[0m[0xa316e3dDa5B0DECC0c6528EDE4595831794c089A]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/BridgeRewardProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)BridgeReward[0x6E19cF519b7B83F7CE719B6d30232485d9609D95]: [0x6E19cF519b7B83F7CE719B6d30232485d9609D95] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)BridgeReward[0x6E19cF519b7B83F7CE719B6d30232485d9609D95]: [0x6E19cF519b7B83F7CE719B6d30232485d9609D95]) [staticcall] - │ │ │ └─ ← "0x6E19cF519b7B83F7CE719B6d30232485d9609D95" - │ │ ├─ [0] VM::label((2021)BridgeReward[0x6E19cF519b7B83F7CE719B6d30232485d9609D95]: [0x6E19cF519b7B83F7CE719B6d30232485d9609D95], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mBridgeReward\u{1b}[0m[0x6E19cF519b7B83F7CE719B6d30232485d9609D95]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/BridgeSlashLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)BridgeSlashLogic[0x7CA05B9246CC6e3053D37219C87653041F72565e]: [0x7CA05B9246CC6e3053D37219C87653041F72565e] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)BridgeSlashLogic[0x7CA05B9246CC6e3053D37219C87653041F72565e]: [0x7CA05B9246CC6e3053D37219C87653041F72565e]) [staticcall] - │ │ │ └─ ← "0x7CA05B9246CC6e3053D37219C87653041F72565e" - │ │ ├─ [0] VM::label((2021)BridgeSlashLogic[0x7CA05B9246CC6e3053D37219C87653041F72565e]: [0x7CA05B9246CC6e3053D37219C87653041F72565e], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mBridgeSlashLogic\u{1b}[0m[0x7CA05B9246CC6e3053D37219C87653041F72565e]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/BridgeSlashProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)BridgeSlash[0x7FC81d20f7D1f53D0eA094fcBdd1b531B71225EB]: [0x7FC81d20f7D1f53D0eA094fcBdd1b531B71225EB] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)BridgeSlash[0x7FC81d20f7D1f53D0eA094fcBdd1b531B71225EB]: [0x7FC81d20f7D1f53D0eA094fcBdd1b531B71225EB]) [staticcall] - │ │ │ └─ ← "0x7FC81d20f7D1f53D0eA094fcBdd1b531B71225EB" - │ │ ├─ [0] VM::label((2021)BridgeSlash[0x7FC81d20f7D1f53D0eA094fcBdd1b531B71225EB]: [0x7FC81d20f7D1f53D0eA094fcBdd1b531B71225EB], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mBridgeSlash\u{1b}[0m[0x7FC81d20f7D1f53D0eA094fcBdd1b531B71225EB]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/BridgeTrackingLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)BridgeTrackingLogic[0xE9C6e1691Db4c75d48744F32CB80B9Bf0829A4f6]: [0xE9C6e1691Db4c75d48744F32CB80B9Bf0829A4f6] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)BridgeTrackingLogic[0xE9C6e1691Db4c75d48744F32CB80B9Bf0829A4f6]: [0xE9C6e1691Db4c75d48744F32CB80B9Bf0829A4f6]) [staticcall] - │ │ │ └─ ← "0xE9C6e1691Db4c75d48744F32CB80B9Bf0829A4f6" - │ │ ├─ [0] VM::label((2021)BridgeTrackingLogic[0xE9C6e1691Db4c75d48744F32CB80B9Bf0829A4f6]: [0xE9C6e1691Db4c75d48744F32CB80B9Bf0829A4f6], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mBridgeTrackingLogic\u{1b}[0m[0xE9C6e1691Db4c75d48744F32CB80B9Bf0829A4f6]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/BridgeTrackingProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)BridgeTracking[0x880c5da7bFF9740464287EBFE381Be1cCCCE4FEA]: [0x880c5da7bFF9740464287EBFE381Be1cCCCE4FEA] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)BridgeTracking[0x880c5da7bFF9740464287EBFE381Be1cCCCE4FEA]: [0x880c5da7bFF9740464287EBFE381Be1cCCCE4FEA]) [staticcall] - │ │ │ └─ ← "0x880c5da7bFF9740464287EBFE381Be1cCCCE4FEA" - │ │ ├─ [0] VM::label((2021)BridgeTracking[0x880c5da7bFF9740464287EBFE381Be1cCCCE4FEA]: [0x880c5da7bFF9740464287EBFE381Be1cCCCE4FEA], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mBridgeTracking\u{1b}[0m[0x880c5da7bFF9740464287EBFE381Be1cCCCE4FEA]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/FastFinalityTrackingLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)FastFinalityTrackingLogic[0x51De6299fdE8cD49AC7475Fc13dB893955AC8b6B]: [0x51De6299fdE8cD49AC7475Fc13dB893955AC8b6B] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)FastFinalityTrackingLogic[0x51De6299fdE8cD49AC7475Fc13dB893955AC8b6B]: [0x51De6299fdE8cD49AC7475Fc13dB893955AC8b6B]) [staticcall] - │ │ │ └─ ← "0x51De6299fdE8cD49AC7475Fc13dB893955AC8b6B" - │ │ ├─ [0] VM::label((2021)FastFinalityTrackingLogic[0x51De6299fdE8cD49AC7475Fc13dB893955AC8b6B]: [0x51De6299fdE8cD49AC7475Fc13dB893955AC8b6B], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mFastFinalityTrackingLogic\u{1b}[0m[0x51De6299fdE8cD49AC7475Fc13dB893955AC8b6B]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/FastFinalityTrackingProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)FastFinalityTracking[0x41aCDFe786171824a037f2Cd6224c5916A58969a]: [0x41aCDFe786171824a037f2Cd6224c5916A58969a] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)FastFinalityTracking[0x41aCDFe786171824a037f2Cd6224c5916A58969a]: [0x41aCDFe786171824a037f2Cd6224c5916A58969a]) [staticcall] - │ │ │ └─ ← "0x41aCDFe786171824a037f2Cd6224c5916A58969a" - │ │ ├─ [0] VM::label((2021)FastFinalityTracking[0x41aCDFe786171824a037f2Cd6224c5916A58969a]: [0x41aCDFe786171824a037f2Cd6224c5916A58969a], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mFastFinalityTracking\u{1b}[0m[0x41aCDFe786171824a037f2Cd6224c5916A58969a]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/ForwarderLogic-0.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)ForwarderLogic-0[0x23Dffc4a93c374A91Fbc1c33075af012b68663F7]: [0x23Dffc4a93c374A91Fbc1c33075af012b68663F7] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)ForwarderLogic-0[0x23Dffc4a93c374A91Fbc1c33075af012b68663F7]: [0x23Dffc4a93c374A91Fbc1c33075af012b68663F7]) [staticcall] - │ │ │ └─ ← "0x23Dffc4a93c374A91Fbc1c33075af012b68663F7" - │ │ ├─ [0] VM::label((2021)ForwarderLogic-0[0x23Dffc4a93c374A91Fbc1c33075af012b68663F7]: [0x23Dffc4a93c374A91Fbc1c33075af012b68663F7], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mForwarderLogic-0\u{1b}[0m[0x23Dffc4a93c374A91Fbc1c33075af012b68663F7]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/ForwarderLogic-1.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)ForwarderLogic-1[0x75C9bBA4b2Faeb7cdec391e7699F015DAeaCa016]: [0x75C9bBA4b2Faeb7cdec391e7699F015DAeaCa016] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)ForwarderLogic-1[0x75C9bBA4b2Faeb7cdec391e7699F015DAeaCa016]: [0x75C9bBA4b2Faeb7cdec391e7699F015DAeaCa016]) [staticcall] - │ │ │ └─ ← "0x75C9bBA4b2Faeb7cdec391e7699F015DAeaCa016" - │ │ ├─ [0] VM::label((2021)ForwarderLogic-1[0x75C9bBA4b2Faeb7cdec391e7699F015DAeaCa016]: [0x75C9bBA4b2Faeb7cdec391e7699F015DAeaCa016], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mForwarderLogic-1\u{1b}[0m[0x75C9bBA4b2Faeb7cdec391e7699F015DAeaCa016]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/ForwarderLogic-2.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)ForwarderLogic-2[0x47E2e2F27f2F70Cb6A4cCa4a777d980020CCD351]: [0x47E2e2F27f2F70Cb6A4cCa4a777d980020CCD351] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)ForwarderLogic-2[0x47E2e2F27f2F70Cb6A4cCa4a777d980020CCD351]: [0x47E2e2F27f2F70Cb6A4cCa4a777d980020CCD351]) [staticcall] - │ │ │ └─ ← "0x47E2e2F27f2F70Cb6A4cCa4a777d980020CCD351" - │ │ ├─ [0] VM::label((2021)ForwarderLogic-2[0x47E2e2F27f2F70Cb6A4cCa4a777d980020CCD351]: [0x47E2e2F27f2F70Cb6A4cCa4a777d980020CCD351], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mForwarderLogic-2\u{1b}[0m[0x47E2e2F27f2F70Cb6A4cCa4a777d980020CCD351]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/ForwarderLogic-3.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)ForwarderLogic-3[0x366D5C95CE8Da388C7401b11Fd88C0bd1bCBc649]: [0x366D5C95CE8Da388C7401b11Fd88C0bd1bCBc649] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)ForwarderLogic-3[0x366D5C95CE8Da388C7401b11Fd88C0bd1bCBc649]: [0x366D5C95CE8Da388C7401b11Fd88C0bd1bCBc649]) [staticcall] - │ │ │ └─ ← "0x366D5C95CE8Da388C7401b11Fd88C0bd1bCBc649" - │ │ ├─ [0] VM::label((2021)ForwarderLogic-3[0x366D5C95CE8Da388C7401b11Fd88C0bd1bCBc649]: [0x366D5C95CE8Da388C7401b11Fd88C0bd1bCBc649], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mForwarderLogic-3\u{1b}[0m[0x366D5C95CE8Da388C7401b11Fd88C0bd1bCBc649]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/ForwarderLogic-4.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)ForwarderLogic-4[0xc077617A8384FEC2f11A3B3B01Ca353ECB345181]: [0xc077617A8384FEC2f11A3B3B01Ca353ECB345181] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)ForwarderLogic-4[0xc077617A8384FEC2f11A3B3B01Ca353ECB345181]: [0xc077617A8384FEC2f11A3B3B01Ca353ECB345181]) [staticcall] - │ │ │ └─ ← "0xc077617A8384FEC2f11A3B3B01Ca353ECB345181" - │ │ ├─ [0] VM::label((2021)ForwarderLogic-4[0xc077617A8384FEC2f11A3B3B01Ca353ECB345181]: [0xc077617A8384FEC2f11A3B3B01Ca353ECB345181], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mForwarderLogic-4\u{1b}[0m[0xc077617A8384FEC2f11A3B3B01Ca353ECB345181]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/MaintenanceLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)MaintenanceLogic[0x84d6e16a767A85D34964f26094BB46b0b7a4c8Ab]: [0x84d6e16a767A85D34964f26094BB46b0b7a4c8Ab] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)MaintenanceLogic[0x84d6e16a767A85D34964f26094BB46b0b7a4c8Ab]: [0x84d6e16a767A85D34964f26094BB46b0b7a4c8Ab]) [staticcall] - │ │ │ └─ ← "0x84d6e16a767A85D34964f26094BB46b0b7a4c8Ab" - │ │ ├─ [0] VM::label((2021)MaintenanceLogic[0x84d6e16a767A85D34964f26094BB46b0b7a4c8Ab]: [0x84d6e16a767A85D34964f26094BB46b0b7a4c8Ab], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mMaintenanceLogic\u{1b}[0m[0x84d6e16a767A85D34964f26094BB46b0b7a4c8Ab]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/MaintenanceProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)Maintenance[0x4016C80D97DDCbe4286140446759a3f0c1d20584]: [0x4016C80D97DDCbe4286140446759a3f0c1d20584] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)Maintenance[0x4016C80D97DDCbe4286140446759a3f0c1d20584]: [0x4016C80D97DDCbe4286140446759a3f0c1d20584]) [staticcall] - │ │ │ └─ ← "0x4016C80D97DDCbe4286140446759a3f0c1d20584" - │ │ ├─ [0] VM::label((2021)Maintenance[0x4016C80D97DDCbe4286140446759a3f0c1d20584]: [0x4016C80D97DDCbe4286140446759a3f0c1d20584], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mMaintenance\u{1b}[0m[0x4016C80D97DDCbe4286140446759a3f0c1d20584]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/ProfileLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)ProfileLogic[0x246d81F6e2a1f4999Ca8aA0d253587a1dBf75E43]: [0x246d81F6e2a1f4999Ca8aA0d253587a1dBf75E43] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)ProfileLogic[0x246d81F6e2a1f4999Ca8aA0d253587a1dBf75E43]: [0x246d81F6e2a1f4999Ca8aA0d253587a1dBf75E43]) [staticcall] - │ │ │ └─ ← "0x246d81F6e2a1f4999Ca8aA0d253587a1dBf75E43" - │ │ ├─ [0] VM::label((2021)ProfileLogic[0x246d81F6e2a1f4999Ca8aA0d253587a1dBf75E43]: [0x246d81F6e2a1f4999Ca8aA0d253587a1dBf75E43], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mProfileLogic\u{1b}[0m[0x246d81F6e2a1f4999Ca8aA0d253587a1dBf75E43]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/ProfileProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)Profile[0x3b67c8D22a91572a6AB18acC9F70787Af04A4043]: [0x3b67c8D22a91572a6AB18acC9F70787Af04A4043] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)Profile[0x3b67c8D22a91572a6AB18acC9F70787Af04A4043]: [0x3b67c8D22a91572a6AB18acC9F70787Af04A4043]) [staticcall] - │ │ │ └─ ← "0x3b67c8D22a91572a6AB18acC9F70787Af04A4043" - │ │ ├─ [0] VM::label((2021)Profile[0x3b67c8D22a91572a6AB18acC9F70787Af04A4043]: [0x3b67c8D22a91572a6AB18acC9F70787Af04A4043], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mProfile\u{1b}[0m[0x3b67c8D22a91572a6AB18acC9F70787Af04A4043]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninBridgeManager.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)RoninBridgeManager[0xb0507f2f22697022eCb25963a00D3D076dAc5753]: [0xb0507f2f22697022eCb25963a00D3D076dAc5753] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)RoninBridgeManager[0xb0507f2f22697022eCb25963a00D3D076dAc5753]: [0xb0507f2f22697022eCb25963a00D3D076dAc5753]) [staticcall] - │ │ │ └─ ← "0xb0507f2f22697022eCb25963a00D3D076dAc5753" - │ │ ├─ [0] VM::label((2021)RoninBridgeManager[0xb0507f2f22697022eCb25963a00D3D076dAc5753]: [0xb0507f2f22697022eCb25963a00D3D076dAc5753], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mRoninBridgeManager\u{1b}[0m[0xb0507f2f22697022eCb25963a00D3D076dAc5753]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninGatewayPauseEnforcer.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)RoninGatewayPauseEnforcer[0x51F44b52856d8E83692FCE53795eb848f410B950]: [0x51F44b52856d8E83692FCE53795eb848f410B950] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)RoninGatewayPauseEnforcer[0x51F44b52856d8E83692FCE53795eb848f410B950]: [0x51F44b52856d8E83692FCE53795eb848f410B950]) [staticcall] - │ │ │ └─ ← "0x51F44b52856d8E83692FCE53795eb848f410B950" - │ │ ├─ [0] VM::label((2021)RoninGatewayPauseEnforcer[0x51F44b52856d8E83692FCE53795eb848f410B950]: [0x51F44b52856d8E83692FCE53795eb848f410B950], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mRoninGatewayPauseEnforcer\u{1b}[0m[0x51F44b52856d8E83692FCE53795eb848f410B950]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninGatewayPauseEnforcerLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)RoninGatewayPauseEnforcerLogic[0x39394AbCfBeA3D5829eB8b0995073BC48bBFF2cF]: [0x39394AbCfBeA3D5829eB8b0995073BC48bBFF2cF] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)RoninGatewayPauseEnforcerLogic[0x39394AbCfBeA3D5829eB8b0995073BC48bBFF2cF]: [0x39394AbCfBeA3D5829eB8b0995073BC48bBFF2cF]) [staticcall] - │ │ │ └─ ← "0x39394AbCfBeA3D5829eB8b0995073BC48bBFF2cF" - │ │ ├─ [0] VM::label((2021)RoninGatewayPauseEnforcerLogic[0x39394AbCfBeA3D5829eB8b0995073BC48bBFF2cF]: [0x39394AbCfBeA3D5829eB8b0995073BC48bBFF2cF], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mRoninGatewayPauseEnforcerLogic\u{1b}[0m[0x39394AbCfBeA3D5829eB8b0995073BC48bBFF2cF]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninGatewayPauseEnforcerProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)RoninGatewayPauseEnforcer[0x1aD54D61F47acBcBA99fb6540A1694EB2F47AB95]: [0x1aD54D61F47acBcBA99fb6540A1694EB2F47AB95] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)RoninGatewayPauseEnforcer[0x1aD54D61F47acBcBA99fb6540A1694EB2F47AB95]: [0x1aD54D61F47acBcBA99fb6540A1694EB2F47AB95]) [staticcall] - │ │ │ └─ ← "0x1aD54D61F47acBcBA99fb6540A1694EB2F47AB95" - │ │ ├─ [0] VM::label((2021)RoninGatewayPauseEnforcer[0x1aD54D61F47acBcBA99fb6540A1694EB2F47AB95]: [0x1aD54D61F47acBcBA99fb6540A1694EB2F47AB95], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mRoninGatewayPauseEnforcer\u{1b}[0m[0x1aD54D61F47acBcBA99fb6540A1694EB2F47AB95]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninGatewayV2Logic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)RoninGatewayV2Logic[0x06F4A12C7FF5a4db1b7f7847425Ff0FEE22a0E11]: [0x06F4A12C7FF5a4db1b7f7847425Ff0FEE22a0E11] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)RoninGatewayV2Logic[0x06F4A12C7FF5a4db1b7f7847425Ff0FEE22a0E11]: [0x06F4A12C7FF5a4db1b7f7847425Ff0FEE22a0E11]) [staticcall] - │ │ │ └─ ← "0x06F4A12C7FF5a4db1b7f7847425Ff0FEE22a0E11" - │ │ ├─ [0] VM::label((2021)RoninGatewayV2Logic[0x06F4A12C7FF5a4db1b7f7847425Ff0FEE22a0E11]: [0x06F4A12C7FF5a4db1b7f7847425Ff0FEE22a0E11], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mRoninGatewayV2Logic\u{1b}[0m[0x06F4A12C7FF5a4db1b7f7847425Ff0FEE22a0E11]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninGovernanceAdmin.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)RoninGovernanceAdmin[0x53Ea388CB72081A3a397114a43741e7987815896]: [0x53Ea388CB72081A3a397114a43741e7987815896] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)RoninGovernanceAdmin[0x53Ea388CB72081A3a397114a43741e7987815896]: [0x53Ea388CB72081A3a397114a43741e7987815896]) [staticcall] - │ │ │ └─ ← "0x53Ea388CB72081A3a397114a43741e7987815896" - │ │ ├─ [0] VM::label((2021)RoninGovernanceAdmin[0x53Ea388CB72081A3a397114a43741e7987815896]: [0x53Ea388CB72081A3a397114a43741e7987815896], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mRoninGovernanceAdmin\u{1b}[0m[0x53Ea388CB72081A3a397114a43741e7987815896]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninTrustedOrganizationLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)RoninTrustedOrganizationLogic[0xa7E978bD77b1B64D100eC0a62898395cb4B47a56]: [0xa7E978bD77b1B64D100eC0a62898395cb4B47a56] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)RoninTrustedOrganizationLogic[0xa7E978bD77b1B64D100eC0a62898395cb4B47a56]: [0xa7E978bD77b1B64D100eC0a62898395cb4B47a56]) [staticcall] - │ │ │ └─ ← "0xa7E978bD77b1B64D100eC0a62898395cb4B47a56" - │ │ ├─ [0] VM::label((2021)RoninTrustedOrganizationLogic[0xa7E978bD77b1B64D100eC0a62898395cb4B47a56]: [0xa7E978bD77b1B64D100eC0a62898395cb4B47a56], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mRoninTrustedOrganizationLogic\u{1b}[0m[0xa7E978bD77b1B64D100eC0a62898395cb4B47a56]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninTrustedOrganizationProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)RoninTrustedOrganization[0x7507dc433a98E1fE105d69f19f3B40E4315A4F32]: [0x7507dc433a98E1fE105d69f19f3B40E4315A4F32] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)RoninTrustedOrganization[0x7507dc433a98E1fE105d69f19f3B40E4315A4F32]: [0x7507dc433a98E1fE105d69f19f3B40E4315A4F32]) [staticcall] - │ │ │ └─ ← "0x7507dc433a98E1fE105d69f19f3B40E4315A4F32" - │ │ ├─ [0] VM::label((2021)RoninTrustedOrganization[0x7507dc433a98E1fE105d69f19f3B40E4315A4F32]: [0x7507dc433a98E1fE105d69f19f3B40E4315A4F32], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mRoninTrustedOrganization\u{1b}[0m[0x7507dc433a98E1fE105d69f19f3B40E4315A4F32]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninValidatorSetLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)RoninValidatorSetLogic[0x6FE9CF3C8f1de99b1E368e941104d51561dF145d]: [0x6FE9CF3C8f1de99b1E368e941104d51561dF145d] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)RoninValidatorSetLogic[0x6FE9CF3C8f1de99b1E368e941104d51561dF145d]: [0x6FE9CF3C8f1de99b1E368e941104d51561dF145d]) [staticcall] - │ │ │ └─ ← "0x6FE9CF3C8f1de99b1E368e941104d51561dF145d" - │ │ ├─ [0] VM::label((2021)RoninValidatorSetLogic[0x6FE9CF3C8f1de99b1E368e941104d51561dF145d]: [0x6FE9CF3C8f1de99b1E368e941104d51561dF145d], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mRoninValidatorSetLogic\u{1b}[0m[0x6FE9CF3C8f1de99b1E368e941104d51561dF145d]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninValidatorSetProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)RoninValidatorSet[0x54B3AC74a90E64E8dDE60671b6fE8F8DDf18eC9d]: [0x54B3AC74a90E64E8dDE60671b6fE8F8DDf18eC9d] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)RoninValidatorSet[0x54B3AC74a90E64E8dDE60671b6fE8F8DDf18eC9d]: [0x54B3AC74a90E64E8dDE60671b6fE8F8DDf18eC9d]) [staticcall] - │ │ │ └─ ← "0x54B3AC74a90E64E8dDE60671b6fE8F8DDf18eC9d" - │ │ ├─ [0] VM::label((2021)RoninValidatorSet[0x54B3AC74a90E64E8dDE60671b6fE8F8DDf18eC9d]: [0x54B3AC74a90E64E8dDE60671b6fE8F8DDf18eC9d], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mRoninValidatorSet\u{1b}[0m[0x54B3AC74a90E64E8dDE60671b6fE8F8DDf18eC9d]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/RoninValidatorSetTimedMigrator.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)RoninValidatorSetTimedMigrator[0xc998920E55f68f631fc4fb1e0dA11A16c637044E]: [0xc998920E55f68f631fc4fb1e0dA11A16c637044E] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)RoninValidatorSetTimedMigrator[0xc998920E55f68f631fc4fb1e0dA11A16c637044E]: [0xc998920E55f68f631fc4fb1e0dA11A16c637044E]) [staticcall] - │ │ │ └─ ← "0xc998920E55f68f631fc4fb1e0dA11A16c637044E" - │ │ ├─ [0] VM::label((2021)RoninValidatorSetTimedMigrator[0xc998920E55f68f631fc4fb1e0dA11A16c637044E]: [0xc998920E55f68f631fc4fb1e0dA11A16c637044E], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mRoninValidatorSetTimedMigrator\u{1b}[0m[0xc998920E55f68f631fc4fb1e0dA11A16c637044E]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/SlashIndicatorLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)SlashIndicatorLogic[0x83C5bdBce6d60038468a643c817CaDC6d1e12324]: [0x83C5bdBce6d60038468a643c817CaDC6d1e12324] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)SlashIndicatorLogic[0x83C5bdBce6d60038468a643c817CaDC6d1e12324]: [0x83C5bdBce6d60038468a643c817CaDC6d1e12324]) [staticcall] - │ │ │ └─ ← "0x83C5bdBce6d60038468a643c817CaDC6d1e12324" - │ │ ├─ [0] VM::label((2021)SlashIndicatorLogic[0x83C5bdBce6d60038468a643c817CaDC6d1e12324]: [0x83C5bdBce6d60038468a643c817CaDC6d1e12324], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mSlashIndicatorLogic\u{1b}[0m[0x83C5bdBce6d60038468a643c817CaDC6d1e12324]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/SlashIndicatorProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)SlashIndicator[0xF7837778b6E180Df6696C8Fa986d62f8b6186752]: [0xF7837778b6E180Df6696C8Fa986d62f8b6186752] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)SlashIndicator[0xF7837778b6E180Df6696C8Fa986d62f8b6186752]: [0xF7837778b6E180Df6696C8Fa986d62f8b6186752]) [staticcall] - │ │ │ └─ ← "0xF7837778b6E180Df6696C8Fa986d62f8b6186752" - │ │ ├─ [0] VM::label((2021)SlashIndicator[0xF7837778b6E180Df6696C8Fa986d62f8b6186752]: [0xF7837778b6E180Df6696C8Fa986d62f8b6186752], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mSlashIndicator\u{1b}[0m[0xF7837778b6E180Df6696C8Fa986d62f8b6186752]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/StakingLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)StakingLogic[0x47FF1a3E1d8A43898Dd0BDd97e63Fe1B14087DdB]: [0x47FF1a3E1d8A43898Dd0BDd97e63Fe1B14087DdB] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)StakingLogic[0x47FF1a3E1d8A43898Dd0BDd97e63Fe1B14087DdB]: [0x47FF1a3E1d8A43898Dd0BDd97e63Fe1B14087DdB]) [staticcall] - │ │ │ └─ ← "0x47FF1a3E1d8A43898Dd0BDd97e63Fe1B14087DdB" - │ │ ├─ [0] VM::label((2021)StakingLogic[0x47FF1a3E1d8A43898Dd0BDd97e63Fe1B14087DdB]: [0x47FF1a3E1d8A43898Dd0BDd97e63Fe1B14087DdB], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mStakingLogic\u{1b}[0m[0x47FF1a3E1d8A43898Dd0BDd97e63Fe1B14087DdB]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/StakingProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)Staking[0x9C245671791834daf3885533D24dce516B763B28]: [0x9C245671791834daf3885533D24dce516B763B28] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)Staking[0x9C245671791834daf3885533D24dce516B763B28]: [0x9C245671791834daf3885533D24dce516B763B28]) [staticcall] - │ │ │ └─ ← "0x9C245671791834daf3885533D24dce516B763B28" - │ │ ├─ [0] VM::label((2021)Staking[0x9C245671791834daf3885533D24dce516B763B28]: [0x9C245671791834daf3885533D24dce516B763B28], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mStaking\u{1b}[0m[0x9C245671791834daf3885533D24dce516B763B28]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/StakingVestingLogic.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)StakingVestingLogic[0x85b8BFd0b4616360f75d12F591538c6350fa4F56]: [0x85b8BFd0b4616360f75d12F591538c6350fa4F56] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)StakingVestingLogic[0x85b8BFd0b4616360f75d12F591538c6350fa4F56]: [0x85b8BFd0b4616360f75d12F591538c6350fa4F56]) [staticcall] - │ │ │ └─ ← "0x85b8BFd0b4616360f75d12F591538c6350fa4F56" - │ │ ├─ [0] VM::label((2021)StakingVestingLogic[0x85b8BFd0b4616360f75d12F591538c6350fa4F56]: [0x85b8BFd0b4616360f75d12F591538c6350fa4F56], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mStakingVestingLogic\u{1b}[0m[0x85b8BFd0b4616360f75d12F591538c6350fa4F56]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/StakingVestingProxy.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)StakingVesting[0x023930A8ad88dc5AB3a3b8E8cb849BbD6a5c8441]: [0x023930A8ad88dc5AB3a3b8E8cb849BbD6a5c8441] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)StakingVesting[0x023930A8ad88dc5AB3a3b8E8cb849BbD6a5c8441]: [0x023930A8ad88dc5AB3a3b8E8cb849BbD6a5c8441]) [staticcall] - │ │ │ └─ ← "0x023930A8ad88dc5AB3a3b8E8cb849BbD6a5c8441" - │ │ ├─ [0] VM::label((2021)StakingVesting[0x023930A8ad88dc5AB3a3b8E8cb849BbD6a5c8441]: [0x023930A8ad88dc5AB3a3b8E8cb849BbD6a5c8441], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mStakingVesting\u{1b}[0m[0x023930A8ad88dc5AB3a3b8E8cb849BbD6a5c8441]") - │ │ │ └─ ← () - │ │ ├─ [0] VM::readFile("/Users/huy.huynh/Desktop/workspace/smart_contract/axieinfinity/ronin-bridge-contracts/deployments/ronin-testnet/VaultForwarder-qc-test.json") [staticcall] - │ │ │ └─ ←  - │ │ ├─ [0] VM::parseJsonAddress("", ".address") [staticcall] - │ │ │ └─ ← (2021)VaultForwarder-qc-test[0xeC97D6E75295495b53bac049D9F2E39EfC3ef9DA]: [0xeC97D6E75295495b53bac049D9F2E39EfC3ef9DA] - │ │ ├─ [0] VM::toString(2021) [staticcall] - │ │ │ └─ ← "2021" - │ │ ├─ [0] VM::toString((2021)VaultForwarder-qc-test[0xeC97D6E75295495b53bac049D9F2E39EfC3ef9DA]: [0xeC97D6E75295495b53bac049D9F2E39EfC3ef9DA]) [staticcall] - │ │ │ └─ ← "0xeC97D6E75295495b53bac049D9F2E39EfC3ef9DA" - │ │ ├─ [0] VM::label((2021)VaultForwarder-qc-test[0xeC97D6E75295495b53bac049D9F2E39EfC3ef9DA]: [0xeC97D6E75295495b53bac049D9F2E39EfC3ef9DA], "(\u{1b}[94m2021\u{1b}[0m)\u{1b}[93mVaultForwarder-qc-test\u{1b}[0m[0xeC97D6E75295495b53bac049D9F2E39EfC3ef9DA]") - │ │ │ └─ ← () - │ │ └─ ← 0x608060405234801561001057600080fd5b50600436106102745760003560e01c806379a7cfee11610151578063c9b294a1116100c3578063e26d0fb811610087578063e26d0fb81461065e578063e8dc9f9e14610671578063e8f98f8814610684578063f431103e14610697578063f55de1c0146106b7578063ff4e1d29146106ca57610274565b8063c9b294a1146105fd578063cedb75ef14610610578063cfb1418e14610625578063d3a3968614610638578063d88236271461064b57610274565b80639c8afddb116101155780639c8afddb1461055c578063a503f7f6146105a9578063a6d90726146105bc578063b3148946146105cf578063be40131f146105d7578063be657518146105ea57610274565b806379a7cfee146105085780637b3781b41461051b578063857d8fd31461052e578063871c24411461054157806387c2a5f91461055457610274565b80633147acd2116101ea57806354b975f8116101ae57806354b975f81461049e578063592a3eb3146104b15780635dd88699146104c45780635e01eb5a146104d757806362bce40b146104df578063667954fc146104e757610274565b80633147acd21461043157806334781f1e14610444578063448522d91461046557806346680400146104785780634af69e161461048b57610274565b80631bd523a61161023c5780631bd523a6146103b25780631da438e1146103c557806323cfba33146103d857806325194225146103eb578063279c966a146103fe578063310fea181461041157610274565b80630110da29146103305780630b60eb131461034e5780630ddd44721461036157806311dc119e146103745780631b0c440b14610387575b632273febf60e21b6000356001600160e01b031916016102a25760006102986106d2565b9050805160208201f35b60405162461bcd60e51b815260206004820152605060248201527f47656e6572616c436f6e6669673a20556e6b6e6f776e20696e7374727563746960448201527f6f6e2c20706c656173652072656e616d6520696e7465726661636520746f207360648201526f6861726564417267756d656e7473282960801b608482015260a4015b60405180910390fd5b005b610338610764565b6040516103459190613c4e565b60405180910390f35b61033861035c366004613d41565b610773565b61033861036f366004613da8565b61083a565b610338610382366004613ddc565b6108a2565b61039a610395366004613e34565b610b69565b6040516001600160a01b039091168152602001610345565b6103386103c0366004613e34565b610bd5565b6103386103d3366004613e34565b610d0a565b6103386103e6366004613e34565b610e0a565b6103386103f9366004613e4d565b610e2a565b61033861040c366004613e34565b610e3a565b61042461041f366004613e34565b610f37565b6040516103459190613ec2565b61032e61043f366004613e34565b610f52565b61032e610452366004613f0f565b6015805460ff1916911515919091179055565b610338610473366004613e34565b6111ba565b61032e610486366004613f31565b6112e2565b610424610499366004613e34565b611305565b61032e6104ac366004613f79565b611323565b61032e6104bf366004613fea565b6114d7565b61032e6104d23660046140a8565b61159c565b61039a6115b9565b6103386116b3565b6104fa6104f53660046140ee565b6116d5565b604051908152602001610345565b61032e610516366004614132565b611970565b6104fa610529366004614160565b611a9d565b6104fa61053c366004613e34565b611b10565b6104fa61054f366004614190565b611ba1565b6103386106d2565b60408051808201825260008082526020918201528151808301835260015460ff80821615158084526101009092041615159183019182528351908152905115159181019190915201610345565b6104fa6105b7366004613e34565b611bad565b6103386105ca3660046141ad565b611e65565b610338612176565b6103386105e5366004613e4d565b612185565b6103386105f8366004613d41565b612195565b61032e61060b3660046141e6565b61224f565b466000908152601760205260409020546104fa565b6103386106333660046141ad565b6123cc565b61039a610646366004614234565b6125db565b610338610659366004613ddc565b6125fa565b61033861066c366004613e34565b6128b4565b61033861067f366004613da8565b6129e7565b61039a610692366004613f79565b612a44565b6104fa6106a5366004613e34565b60009081526017602052604090205490565b61039a6106c53660046140a8565b612a86565b610338612ace565b6060601880546106e190614256565b80601f016020809104026020016040519081016040528092919081815260200182805461070d90614256565b801561075a5780601f1061072f5761010080835404028352916020019161075a565b820191906000526020600020905b81548152906001019060200180831161073d57829003601f168201915b5050505050905090565b6060600280546106e190614256565b6060600082600181111561078957610789614290565b1461079d576107988484611e65565b610832565b6108328484600a80546107af90614256565b80601f01602080910402602001604051908101604052809291908181526020018280546107db90614256565b80156108285780601f106107fd57610100808354040283529160200191610828565b820191906000526020600020905b81548152906001019060200180831161080b57829003601f168201915b5050505050612185565b949350505050565b60606000600c54600160a01b900460ff16600181111561085c5761085c614290565b1461087c57600c54610877906001600160a01b031683611e65565b61089c565b600b54600a805461089c926001600160a01b03169185916107af90614256565b92915050565b604080516008808252610120820190925260609160009190816020015b60608152602001906001900390816108bf5790505090506040518060400160405280600481526020016318d85cdd60e21b81525081600081518110610906576109066142a6565b6020026020010181905250604051806040016040528060068152602001651dd85b1b195d60d21b81525081600181518110610943576109436142a6565b60200260200101819052506040518060400160405280600481526020016339b4b3b760e11b8152508160028151811061097e5761097e6142a6565b6020026020010181905250604051806040016040528060068152602001652d2d66726f6d60d01b815250816003815181106109bb576109bb6142a6565b6020908102919091010152604051632b65311f60e11b81526001600160a01b0386166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa158015610a18573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a4091908101906142ec565b81600481518110610a5357610a536142a6565b60200260200101819052506040518060400160405280600d81526020016c2d2d707269766174652d6b657960981b81525081600581518110610a9757610a976142a6565b6020026020010181905250610aab83612b12565b81600681518110610abe57610abe6142a6565b60200260200101819052508381600781518110610add57610add6142a6565b6020908102919091010152604051638916046760e01b8152600080516020614e2c83398151915290638916046790610b19908490600401614334565b6000604051808303816000875af1158015610b38573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b6091908101906142ec565b95945050505050565b600080610b75836111ba565b9050805160001415610b8684612b36565b604051602001610b9691906143b4565b60405160208183030381529060405290610bc35760405162461bcd60e51b81526004016103259190613c4e565b50610bce4682612a86565b9392505050565b6000818152601060205260409020805460609190610bf290614256565b159050610c975760008281526010602052604090208054610c1290614256565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3e90614256565b8015610c8b5780601f10610c6057610100808354040283529160200191610c8b565b820191906000526020600020905b815481529060010190602001808311610c6e57829003601f168201915b50505050509050919050565b600d8054610ca490614256565b159050610ce6576000828152600f60209081526040918290209151610cd092600d9290918291016144ad565b6040516020818303038152906040529050919050565b6000828152600f60209081526040918290209151610cd09291016144e4565b919050565b6000818152601660205260409020600201805460609190610d2a90614256565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5690614256565b8015610da35780601f10610d7857610100808354040283529160200191610da3565b820191906000526020600020905b815481529060010190602001808311610d8657829003601f168201915b505050505090508051600003610d055760405162461bcd60e51b815260206004820152602660248201527f4e6574776f726b436f6e6669673a204e6574776f726b20616c696173206e6f7460448201526508199bdd5b9960d21b6064820152608401610325565b6000818152601660205260409020600501805460609190610c1290614256565b6060610832848461038285612b5c565b6000818152601660205260409020600401805460609190610e5a90614256565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8690614256565b8015610ed35780601f10610ea857610100808354040283529160200191610ed3565b820191906000526020600020905b815481529060010190602001808311610eb657829003601f168201915b505050505090508051600003610d055760405162461bcd60e51b815260206004820152602360248201527f4e6574776f726b20436f6e6669673a20454e56206c6162656c206e6f7420666f6044820152621d5b9960ea1b6064820152608401610325565b600081815260116020526040812060609190610bce90612e80565b611065610f7960405180604001604052806003815260200162051f1f60e91b815250612e8d565b6040518060400160405280600d81526020016c29bbb4ba31b434b733903a379d60991b815250611046601660008681526020019081526020016000206002018054610fc390614256565b80601f0160208091040260200160405190810160405280929190818152602001828054610fef90614256565b801561103c5780601f106110115761010080835404028352916020019161103c565b820191906000526020600020905b81548152906001019060200180831161101f57829003601f168201915b5050505050612eb6565b604051806040016040528060018152602001600560f91b815250612edf565b6000818152601660205260409020547f3650438c5b6b158a3b6da933280b9ac715c85c6e9616415bededfd3e2fa4538981016110e35760405162461bcd60e51b815260206004820152601e60248201527f4e6574776f726b20436f6e6669673a20556e65786973747320666f726b2100006044820152606401610325565b604051639ebf682760e01b815260048101829052600080516020614e2c83398151915290639ebf682790602401600060405180830381600087803b15801561112a57600080fd5b505af115801561113e573d6000803e3d6000fd5b505050600083815260166020526040902060010154461490506111ae5760405162461bcd60e51b815260206004820152602260248201527f4e6574776f726b436f6e6669673a2053776974636820636861696e206661696c604482015261195960f21b6064820152608401610325565b6111b6612f2e565b5050565b606060006111c783612b36565b6000848152600f602052604090208054919250906111e490614256565b80601f016020809104026020016040519081016040528092919081815260200182805461121090614256565b801561125d5780601f106112325761010080835404028352916020019161125d565b820191906000526020600020905b81548152906001019060200180831161124057829003601f168201915b50505050509150818051906020012081805190602001201461127f5780611281565b815b915081516000141581600f60008681526020019081526020016000206040516020016112ae929190614504565b604051602081830303815290604052906112db5760405162461bcd60e51b81526004016103259190613c4e565b5050919050565b601880546112ef90614256565b1590506112f95750565b60186111b682826145e9565b60008181526016602052604090206001015460609061089c90610f37565b60005460ff1615611332575050565b80156114b4576000611396604051806040016040528060018152602001600160fe1b81525084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506131239050565b805190915060005b818110156114b0576113ed604051806040016040528060038152602001626c6f6760e81b8152508483815181106113d7576113d76142a6565b60200260200101516131cd90919063ffffffff16565b15611403576001805460ff1916811790556114a8565b611437604051806040016040528060068152602001653a3932bd37b960d11b8152508483815181106113d7576113d76142a6565b15611450576001805461ff0019166101001790556114a8565b6114a86114896040518060400160405280601581526020017402ab739bab83837b93a32b21031b7b6b6b0b7321d1605d1b815250612eb6565b84838151811061149b5761149b6142a6565b60200260200101516131e3565b60010161139e565b5050505b60026114c18284836146a8565b506000805460ff191660011790556111b6613228565b60008681526017602052604090819020869055805160c08101909152806114fe86896116d5565b815260208082018990526040808301889052606083018790526080830186905260a09092018490526000888152601682528290208351815590830151600182015590820151600282019061155290826145e9565b506060820151600382019061156790826145e9565b506080820151600482019061157c90826145e9565b5060a0820151600582019061159190826145e9565b505050505050505050565b60008281526010602052604090206115b482826145e9565b505050565b600154600090610100900460ff166115dc57600b546001600160a01b03166115e9565b600c546001600160a01b03165b90506001600160a01b03811615801561162457506116246116164660009081526017602052604090205490565b611620600061340f565b1490565b1561164c57507fee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f385b6001600160a01b0381166116b05760405162461bcd60e51b815260206004820152602560248201527f47656e6572616c436f6e6669673a2053656e6465722069732061646472657373604482015264283078302960d81b6064820152608401610325565b90565b6040805180820190915260088152672222a82627aca2a960c11b602082015290565b6000807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b0316632f103f226040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611755575060408051601f3d908101601f1916820190925261175291810190614768565b60015b6117995761178261177d604051806060016040528060318152602001614dfb60319139612eb6565b613434565b50600080516020614e4c833981519152905061089c565b90504683036117a957905061089c565b60155460ff166117ca5750600080516020614e4c833981519152905061089c565b60008381526017602090815260408083205483526016909152902054600080516020614e4c833981519152811461180457915061089c9050565b60405163975a6ce960e01b8152600090600080516020614e2c8339815191529063975a6ce990611838908990600401613c4e565b600060405180830381865afa158015611855573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261187d91908101906142ec565b604051630637469360e31b8152909150600080516020614e2c833981519152906331ba3498906118b1908490600401613c4e565b6020604051808303816000875af19250505080156118ec575060408051601f3d908101601f191682019092526118e991810190614768565b60015b6119345761191a6119146040518060600160405280602b8152602001614dd0602b9139613477565b826131e3565b50600080516020614e4c833981519152925061089c915050565b61196561195f8860405160200161194b9190614781565b604051602081830303815290604052612e8d565b826134a0565b935061089c92505050565b6000838152601660205260408120600101549061198c846111ba565b9050811580159061199d5750805115155b611a025760405162461bcd60e51b815260206004820152603060248201527f47656e6572616c436f6e6669673a204e6574776f726b206f7220436f6e74726160448201526f18dd0812d95e481b9bdd08199bdd5b9960821b6064820152608401610325565b611a0d82848361224f565b6000828152601160205260409020611a2590846134e5565b5060008281526013602090815260408083206001600160a01b038716845282528083208790558483526012909152908190209051849190611a679084906147df565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050505050565b60008281526013602090815260408083206001600160a01b0385168452909152902054801515611acc82612b36565b604051602001611adc91906147fb565b60405160208183030381529060405290611b095760405162461bcd60e51b81526004016103259190613c4e565b5092915050565b6000818152601660205260409020547f3650438c5b6b158a3b6da933280b9ac715c85c6e9616415bededfd3e2fa453898101610d055760405162461bcd60e51b815260206004820152602a60248201527f4e6574776f726b436f6e6669673a204e6574776f726b20666f726b206973206e6044820152691bdd0818dc99585d195960b21b6064820152608401610325565b600061089c4683611a9d565b600080601660008481526020019081526020016000206040518060c00160405290816000820154815260200160018201548152602001600282018054611bf290614256565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1e90614256565b8015611c6b5780601f10611c4057610100808354040283529160200191611c6b565b820191906000526020600020905b815481529060010190602001808311611c4e57829003601f168201915b50505050508152602001600382018054611c8490614256565b80601f0160208091040260200160405190810160405280929190818152602001828054611cb090614256565b8015611cfd5780601f10611cd257610100808354040283529160200191611cfd565b820191906000526020600020905b815481529060010190602001808311611ce057829003601f168201915b50505050508152602001600482018054611d1690614256565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4290614256565b8015611d8f5780601f10611d6457610100808354040283529160200191611d8f565b820191906000526020600020905b815481529060010190602001808311611d7257829003601f168201915b50505050508152602001600582018054611da890614256565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd490614256565b8015611e215780601f10611df657610100808354040283529160200191611e21565b820191906000526020600020905b815481529060010190602001808311611e0457829003601f168201915b5050509190925250506015805460ff19166001179055509050611e4c816040015182602001516116d5565b6000938452601660205260409093208390555090919050565b604080516009808252610140820190925260609160009190816020015b6060815260200190600190039081611e825790505090506040518060400160405280600481526020016318d85cdd60e21b81525081600081518110611ec957611ec96142a6565b6020026020010181905250604051806040016040528060068152602001651dd85b1b195d60d21b81525081600181518110611f0657611f066142a6565b60200260200101819052506040518060400160405280600481526020016339b4b3b760e11b81525081600281518110611f4157611f416142a6565b6020026020010181905250604051806040016040528060068152602001652d2d66726f6d60d01b81525081600381518110611f7e57611f7e6142a6565b6020908102919091010152604051632b65311f60e11b81526001600160a01b0385166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa158015611fdb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261200391908101906142ec565b81600481518110612016576120166142a6565b6020026020010181905250604051806040016040528060088152602001671696ba3932bd37b960c11b81525081600581518110612055576120556142a6565b6020026020010181905250604051806040016040528060068152602001652d2d6461746160d01b81525081600681518110612092576120926142a6565b60200260200101819052506040518060400160405280600b81526020016a2d2d66726f6d2d66696c6560a81b815250816007815181106120d4576120d46142a6565b602002602001018190525082816008815181106120f3576120f36142a6565b6020908102919091010152604051638916046760e01b8152600080516020614e2c8339815191529063891604679061212f908490600401614334565b6000604051808303816000875af115801561214e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261083291908101906142ec565b6060601480546106e190614256565b6060610832848461065985612b5c565b606060008260018111156121ab576121ab614290565b146121ba5761079884846123cc565b6108328484600a80546121cc90614256565b80601f01602080910402602001604051908101604052809291908181526020018280546121f890614256565b80156122455780601f1061221a57610100808354040283529160200191612245565b820191906000526020600020905b81548152906001019060200180831161222857829003601f168201915b5050505050610e2a565b60405163348051d760e11b815260048101849052600080516020614e2c8339815191529063c657c7189084906122d4908490636900a3ae90602401600060405180830381865afa1580156122a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122cf91908101906142ec565b612e8d565b6122dd85612eb6565b604051632b65311f60e11b81526001600160a01b0388166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa15801561232f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261235791908101906142ec565b6040516020016123699392919061487c565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016123959291906148f6565b600060405180830381600087803b1580156123af57600080fd5b505af11580156123c3573d6000803e3d6000fd5b50505050505050565b604080516007808252610100820190925260609160009190816020015b60608152602001906001900390816123e95790505090506040518060400160405280600481526020016318d85cdd60e21b81525081600081518110612430576124306142a6565b6020026020010181905250604051806040016040528060068152602001651dd85b1b195d60d21b8152508160018151811061246d5761246d6142a6565b60200260200101819052506040518060400160405280600481526020016339b4b3b760e11b815250816002815181106124a8576124a86142a6565b6020026020010181905250604051806040016040528060068152602001652d2d66726f6d60d01b815250816003815181106124e5576124e56142a6565b6020908102919091010152604051632b65311f60e11b81526001600160a01b0385166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa158015612542573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261256a91908101906142ec565b8160048151811061257d5761257d6142a6565b6020026020010181905250604051806040016040528060088152602001671696ba3932bd37b960c11b815250816005815181106125bc576125bc6142a6565b602002602001018190525082816006815181106120f3576120f36142a6565b600082815260166020526040812060010154610bce906106c5846111ba565b60408051600a808252610160820190925260609160009190816020015b60608152602001906001900390816126175790505090506040518060400160405280600481526020016318d85cdd60e21b8152508160008151811061265e5761265e6142a6565b6020026020010181905250604051806040016040528060068152602001651dd85b1b195d60d21b8152508160018151811061269b5761269b6142a6565b60200260200101819052506040518060400160405280600481526020016339b4b3b760e11b815250816002815181106126d6576126d66142a6565b6020026020010181905250604051806040016040528060068152602001652d2d66726f6d60d01b81525081600381518110612713576127136142a6565b6020908102919091010152604051632b65311f60e11b81526001600160a01b0386166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa158015612770573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261279891908101906142ec565b816004815181106127ab576127ab6142a6565b60200260200101819052506040518060400160405280600d81526020016c2d2d707269766174652d6b657960981b815250816005815181106127ef576127ef6142a6565b602002602001018190525061280383612b12565b81600681518110612816576128166142a6565b6020026020010181905250604051806040016040528060068152602001652d2d6461746160d01b81525081600781518110612853576128536142a6565b60200260200101819052506040518060400160405280600b81526020016a2d2d66726f6d2d66696c6560a81b81525081600881518110612895576128956142a6565b60200260200101819052508381600981518110610add57610add6142a6565b6000818152601660205260408120600301805460609291906128d590614256565b80601f016020809104026020016040519081016040528092919081815260200182805461290190614256565b801561294e5780601f106129235761010080835404028352916020019161294e565b820191906000526020600020905b81548152906001019060200180831161293157829003601f168201915b5050505050905080516000036129bc5760405162461bcd60e51b815260206004820152602d60248201527f4e6574776f726b436f6e6669673a204465706c6f796d656e742064697265637460448201526c1bdc9e481b9bdd08199bdd5b99609a1b6064820152608401610325565b6014816040516020016129d092919061491a565b604051602081830303815290604052915050919050565b60606000600c54600160a01b900460ff166001811115612a0957612a09614290565b14612a2457600c54610877906001600160a01b0316836123cc565b600b54600a805461089c926001600160a01b03169185916121cc90614256565b6000610bce4684848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a8692505050565b6000828152601260205260408082209051612aa29084906147df565b90815260405160209181900382018120546001600160a01b0316925082151591611adc9185910161493f565b6040805180820190915260098152687472657a6f723a2f2f60b81b602082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6060612b1d826134fa565b8051613078825260020160011990910190815292915050565b604080518082019091526000808252601f8201839052815182016020015260609061089c565b60405163c1978d1f60e01b8152600090600080516020614e2c8339815191529063c1978d1f90612b90908590600401613c4e565b602060405180830381865afa925050508015612bc9575060408051601f3d908101601f19168201909252612bc691810190614768565b60015b61089c5760408051600380825260808201909252600091816020015b6060815260200190600190039081612be557505060405163f877cb1960e01b8152909150600080516020614e2c8339815191529063f877cb1990612c2d908690600401613c4e565b600060405180830381865afa925050508015612c6b57506040513d6000823e601f3d908101601f19168201604052612c6891908101906142ec565b60015b612ca65782604051602001612c8091906149aa565b60408051601f198184030181529082905262461bcd60e51b825261032591600401613c4e565b8082600281518110612cba57612cba6142a6565b6020026020010181905250506040518060400160405280600281526020016106f760f41b81525081600081518110612cf457612cf46142a6565b6020026020010181905250604051806040016040528060048152602001631c99585960e21b81525081600181518110612d2f57612d2f6142a6565b6020908102919091010152604051638916046760e01b8152600080516020614e2c8339815191529063fa91454d9082906371aad10d908290638916046790612d7b908890600401614334565b6000604051808303816000875af1158015612d9a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612dc291908101906142ec565b6040518263ffffffff1660e01b8152600401612dde9190613c4e565b600060405180830381865afa158015612dfb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e2391908101906142ec565b6040518263ffffffff1660e01b8152600401612e3f9190613c4e565b602060405180830381865afa158015612e5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bce9190614768565b60606000610bce8361355c565b606061089c604051806040016040528060058152602001641b5b39346d60d81b815250836135b7565b606061089c604051806040016040528060058152602001641b5b39336d60d81b815250836135b7565b612f2884848484604051602401612ef99493929190614a7f565b60408051601f198184030181529190526020810180516001600160e01b0316636f34790560e11b179052613601565b50505050565b60405163348051d760e11b81524360048201526131219061177d90600080516020614e2c83398151915290636900a3ae90602401600060405180830381865afa158015612f7f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fa791908101906142ec565b60405163348051d760e11b8152426004820152600080516020614e2c83398151915290636900a3ae90602401600060405180830381865afa158015612ff0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261301891908101906142ec565b60405163348051d760e11b81523a6004820152600080516020614e2c83398151915290636900a3ae90602401600060405180830381865afa158015613061573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261308991908101906142ec565b60405163348051d760e11b8152456004820152600080516020614e2c83398151915290636900a3ae90602401600060405180830381865afa1580156130d2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130fa91908101906142ec565b60405160200161310d9493929190614ad7565b604051602081830303815290604052612eb6565b565b60606000613131848461360a565b9050601f1960208201600183510160051b81018651838201526001845101845260005b8251606084528181146131995760405182820380825286601f8201165b8b8501810151838201528701806131715750600082820160200152603f018616810160405284525b87516020949094019301905081831061315457505050508091508251611b0957602081019150600281510382525092915050565b8051602091820120825192909101919091201490565b6111b682826040516024016131f9929190614bae565b60408051601f198184030181529190526020810180516001600160e01b0316634b5c427760e01b179052613601565b600154610100900460ff1615613349576132406136d9565b600c8054604080518082019091529182526b2a3932bd37b929b2b73232b960a11b602083015261327b9146916001600160a01b03169061224f565b604080518082018252600e81526d23b2b732b930b621b7b73334b39d60911b6020820152600c54915163028a249b60e41b81526001600160a01b03909216600483015261312191600080516020614e2c833981519152906328a249b0906024015b6000604051808303816000875af11580156132fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261332391908101906142ec565b60405180604001604052806008815260200167456e61626c65642160c01b815250613870565b4660009081526017602052604081205461336290610e3a565b905061336d816138b7565b600b5460408051808201909152600981526822a72b29b2b73232b960b91b60208201526133a79146916001600160a01b039091169061224f565b604080518082018252600e81526d23b2b732b930b621b7b73334b39d60911b6020820152600b54915163028a249b60e41b81526001600160a01b03909216600483015261340c91600080516020614e2c833981519152906328a249b0906024016132dc565b50565b600061089c61341d83613972565b6000601f600183510310601f830151029050919050565b61340c816040516024016134489190613c4e565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052613601565b606061089c604051806040016040528060058152602001641b5b39316d60d81b815250836135b7565b6111b682826040516024016134b6929190614bd3565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052613601565b6000610bce836001600160a01b038416613a84565b606060806040510190506020810160405260008152806f30313233343536373839616263646566600f52600119835b600f811651938201936001850153600f8160041c1651845360081c80613529575050819003601f19909101908152919050565b606081600001805480602002602001604051908101604052809291908181526020018280548015610c8b57602002820191906000526020600020905b8154815260200190600101908083116135985750505050509050919050565b60608282604051806040016040528060048152602001631b5b306d60e01b8152506040516020016135ea93929190614bf5565b604051602081830303815290604052905092915050565b61340c81612af1565b6060825182518181116136d157602085019450602084019350602060405101925084600182848801030160006020841061364357508286205b601f841660200360031b87515b8951818118831c6136a55783156136835783878c20146136835760018b019a50848b1061367d57506136b4565b50613650565b858b0389529986019960209098019786156136a557848b1061367d57506136b4565b5060018a019950838a10613650575b505060408051601f198189030160051c8152602090970190525050505b505092915050565b32731804c8ab1f12e6bbf3894d4083f33e07309d1f381461370b57600c80546001600160a01b0319163217905561385b565b600080516020614e2c83398151915263f877cb196137276116b3565b6040518263ffffffff1660e01b81526004016137439190613c4e565b600060405180830381865afa92505050801561378157506040513d6000823e601f3d908101601f1916820160405261377e91908101906142ec565b60015b6137a65761378d6116b3565b613795612ace565b604051602001612c80929190614c38565b600080516020614e2c83398151915263c6ce059d6137dc6137c5612ace565b604080516020810190915260008152859190613ad3565b6040518263ffffffff1660e01b81526004016137f89190613c4e565b602060405180830381865afa158015613815573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138399190614d63565b600c80546001600160a01b0319166001600160a01b0392909216919091179055505b600c805460ff60a01b1916600160a01b179055565b6115b483838360405160240161388893929190614d80565b60408051601f198184030181529190526020810180516001600160e01b0316632ced7cef60e01b179052613601565b600a6138c382826145e9565b50600c805460ff60a01b19169055600080516020614e2c83398151915263221000646138ee83612b5c565b6040518263ffffffff1660e01b815260040161390c91815260200190565b6020604051808303816000875af115801561392b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061394f9190614d63565b600b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600082600281111561398857613988614290565b036139ae575050604080518082019091526005815264131bd8d85b60da1b602082015290565b60018260028111156139c2576139c2614290565b036139ef57505060408051808201909152600c81526b149bdb9a5b95195cdd1b995d60a21b602082015290565b6002826002811115613a0357613a03614290565b03613a3057505060408051808201909152600c81526b149bdb9a5b93585a5b9b995d60a21b602082015290565b60405162461bcd60e51b8152602060048201526024808201527f44656661756c744e6574776f726b3a20556e6b6e6f776e206e6574776f726b206044820152636e616d6560e01b6064820152608401610325565b6000818152600183016020526040812054613acb5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561089c565b50600061089c565b60608351835183516020870196506020860195506020850194506020604051019350828701838311613ba557600183820301600060208510613b1457508388205b601f851660200360031b89515b8b51818118831c613b8c578315613b5b5783888e2014613b5b57808a5260019c8d019c90990198848d10613b555750613ba0565b50613b21565b60005b8b8101518b820152602001878110613b5e57509b87019b988601988715613b8c57848d10613b555750613ba0565b895260019b8c019b90980197838c10613b21575b505050505b84935060206040510194508781038585030192505b80881015613bd5578751845260209788019790930192613bba565b50506000818401908152602001604052601f19909201918252509392505050565b613121614db9565b60005b83811015613c19578181015183820152602001613c01565b50506000910152565b60008151808452613c3a816020860160208601613bfe565b601f01601f19169290920160200192915050565b602081526000610bce6020830184613c22565b6001600160a01b038116811461340c57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613cb457613cb4613c76565b604052919050565b60006001600160401b03821115613cd557613cd5613c76565b50601f01601f191660200190565b6000613cf6613cf184613cbc565b613c8c565b9050828152838383011115613d0a57600080fd5b828260208301376000602084830101529392505050565b600082601f830112613d3257600080fd5b610bce83833560208501613ce3565b600080600060608486031215613d5657600080fd5b8335613d6181613c61565b925060208401356001600160401b03811115613d7c57600080fd5b613d8886828701613d21565b925050604084013560028110613d9d57600080fd5b809150509250925092565b600060208284031215613dba57600080fd5b81356001600160401b03811115613dd057600080fd5b61083284828501613d21565b600080600060608486031215613df157600080fd5b8335613dfc81613c61565b925060208401356001600160401b03811115613e1757600080fd5b613e2386828701613d21565b925050604084013590509250925092565b600060208284031215613e4657600080fd5b5035919050565b600080600060608486031215613e6257600080fd5b8335613e6d81613c61565b925060208401356001600160401b0380821115613e8957600080fd5b613e9587838801613d21565b93506040860135915080821115613eab57600080fd5b50613eb886828701613d21565b9150509250925092565b6020808252825182820181905260009190848201906040850190845b81811015613f035783516001600160a01b031683529284019291840191600101613ede565b50909695505050505050565b600060208284031215613f2157600080fd5b81358015158114610bce57600080fd5b600060208284031215613f4357600080fd5b81356001600160401b03811115613f5957600080fd5b8201601f81018413613f6a57600080fd5b61083284823560208401613ce3565b60008060208385031215613f8c57600080fd5b82356001600160401b0380821115613fa357600080fd5b818501915085601f830112613fb757600080fd5b813581811115613fc657600080fd5b866020828501011115613fd857600080fd5b60209290920196919550909350505050565b60008060008060008060c0878903121561400357600080fd5b863595506020870135945060408701356001600160401b038082111561402857600080fd5b6140348a838b01613d21565b9550606089013591508082111561404a57600080fd5b6140568a838b01613d21565b9450608089013591508082111561406c57600080fd5b6140788a838b01613d21565b935060a089013591508082111561408e57600080fd5b5061409b89828a01613d21565b9150509295509295509295565b600080604083850312156140bb57600080fd5b8235915060208301356001600160401b038111156140d857600080fd5b6140e485828601613d21565b9150509250929050565b6000806040838503121561410157600080fd5b82356001600160401b0381111561411757600080fd5b61412385828601613d21565b95602094909401359450505050565b60008060006060848603121561414757600080fd5b83359250602084013591506040840135613d9d81613c61565b6000806040838503121561417357600080fd5b82359150602083013561418581613c61565b809150509250929050565b6000602082840312156141a257600080fd5b8135610bce81613c61565b600080604083850312156141c057600080fd5b82356141cb81613c61565b915060208301356001600160401b038111156140d857600080fd5b6000806000606084860312156141fb57600080fd5b83359250602084013561420d81613c61565b915060408401356001600160401b0381111561422857600080fd5b613eb886828701613d21565b6000806040838503121561424757600080fd5b50508035926020909101359150565b600181811c9082168061426a57607f821691505b60208210810361428a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006142ca613cf184613cbc565b90508281528383830111156142de57600080fd5b610bce836020830184613bfe565b6000602082840312156142fe57600080fd5b81516001600160401b0381111561431457600080fd5b8201601f8101841361432557600080fd5b610832848251602084016142bc565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561438b57603f19888603018452614379858351613c22565b9450928501929085019060010161435d565b5092979650505050505050565b600081516143aa818560208601613bfe565b9290920192915050565b7f436f6e7472616374436f6e666967286765744164647265737346726f6d43757281527f72656e744e6574776f726b293a20436f6e74726163742054797065206e6f74206020820152660ccdeeadcc840560cb1b604082015260008251614422816047850160208701613bfe565b602960f81b6047939091019283015250604801919050565b6000815461444781614256565b6001828116801561445f5760018114614474576144a3565b60ff19841687528215158302870194506144a3565b8560005260208060002060005b8581101561449a5781548a820152908401908201614481565b50505082870194505b5050505092915050565b60006144c26144bc838761443a565b8561443a565b641739b7b61d60d91b81526144da600582018561443a565b9695505050505050565b60006144f0828461443a565b630b9cdbdb60e21b81526004019392505050565b7f436f6e7472616374436f6e66696728676574436f6e74726163744e616d65293a81527f20436f6e74726163742054797065206e6f7420666f756e64202800000000000060208201526000835161456281603a850160208801613bfe565b61148560f11b603a9184019182015271029ba37b930b3b2902730b6b29026b0b81d160751b603c820152610b60604e82018561443a565b601f8211156115b4576000816000526020600020601f850160051c810160208610156145c25750805b601f850160051c820191505b818110156145e1578281556001016145ce565b505050505050565b81516001600160401b0381111561460257614602613c76565b614616816146108454614256565b84614599565b602080601f83116001811461464b57600084156146335750858301515b600019600386901b1c1916600185901b1785556145e1565b600085815260208120601f198616915b8281101561467a5788860151825594840194600190910190840161465b565b50858210156146985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b038311156146bf576146bf613c76565b6146d3836146cd8354614256565b83614599565b6000601f84116001811461470757600085156146ef5750838201355b600019600387901b1c1916600186901b178355614761565b600083815260209020601f19861690835b828110156147385786850135825560209485019460019092019101614718565b50868210156147555760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60006020828403121561477a57600080fd5b5051919050565b6e02732ba3bb7b935a1b7b73334b39d1608d1b8152600082516147ab81600f850160208701613bfe565b7f20666f726b2063726561746564207769746820666f726b49643a000000000000600f939091019283015250602901919050565b600082516147f1818460208701613bfe565b9190910192915050565b7f436f6e7472616374436f6e66696728676574436f6e747261637454797065427981527f52617744617461293a20436f6e747261637454797065206e6f7420666f756e64602082015261040560f31b604082015260008251614864816042850160208701613bfe565b602960f81b6042939091019283015250604301919050565b600560fb1b815260008451614898816001850160208901613bfe565b602960f81b60019184019182015284516148b9816002840160208901613bfe565b605b60f81b6002929091019182015283516148db816003840160208801613bfe565b605d60f81b6003929091019182015260040195945050505050565b6001600160a01b038316815260406020820181905260009061083290830184613c22565b6000614926828561443a565b8351614936818360208801613bfe565b01949350505050565b7f436f6e7472616374436f6e66696728676574416464726573734279526177446181527f7461293a2041646472657373206e6f7420666f756e643a20000000000000000060208201526000825161499d816038850160208701613bfe565b9190910160380192915050565b7f0a47656e6572616c436f6e6669673a204572726f722066696e64696e6720656e81527f762061646472657373210a2d20506c65617365206d616b6520602e656e76602060208201527f66696c6520616e6420637265617465206669656c642060000000000000000000604082015260008251614a2e816057850160208701613bfe565b603d60f81b60579390910192830152507f7b6f705f7365637265745f7265666572656e63655f6f725f796f75725f70726960588201526903b30ba32afb5b2bcbeb60b51b6078820152608201919050565b608081526000614a926080830187613c22565b8281036020840152614aa48187613c22565b90508281036040840152614ab88186613c22565b90508281036060840152614acc8185613c22565b979650505050505050565b6d0213637b1b590273ab6b132b91d160951b815260008551614b0081600e850160208a01613bfe565b8083019050620103e160ed1b80600e8301526a02a34b6b2b9ba30b6b81d160ad1b60118301528651614b3981601c850160208b01613bfe565b601c92019182018190526a023b0b990283934b1b29d160ad1b601f8301528551614b6a81602a850160208a01613bfe565b602a920191820152700213637b1b59023b0b9902634b6b4ba1d1607d1b602d820152614b99603e820185614398565b600560f91b8152600101979650505050505050565b604081526000614bc16040830185613c22565b8281036020840152610b608185613c22565b604081526000614be66040830185613c22565b90508260208301529392505050565b60008451614c07818460208901613bfe565b845190830190614c1b818360208901613bfe565b8451910190614c2e818360208801613bfe565b0195945050505050565b7f0a47656e6572616c436f6e6669673a204572726f722066696e64696e6720747281527f657a6f722061646472657373210a2d20506c65617365206f766572726964652060208201527f64656661756c742073656e646572207769746820602d2d73656e646572207b7960408201527f6f75725f7472657a6f725f6163636f756e747d6020746167200a2d204f72206d60608201527f616b6520602e656e76602066696c6520616e6420637265617465206669656c64608082015261010360f51b60a082015260008351614d138160a2850160208801613bfe565b603d60f81b60a2918401918201528351614d348160a3840160208801613bfe565b7503dbcb7bab92fba3932bd37b92fb0b1b1b7bab73a3eb60551b60a3929091019182015260b901949350505050565b600060208284031215614d7557600080fd5b8151610bce81613c61565b606081526000614d936060830186613c22565b8281036020840152614da58186613c22565b905082810360408401526144da8185613c22565b634e487b7160e01b600052605160045260246000fdfe4e6574776f726b436f6e6669673a2043616e6e6f742063726561746520666f726b20776974682075726c3a4e6574776f726b436f6e6669673a20666f726b206d6f64652064697361626c65642c206e6f2061637469766520666f726b0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12dc9afbc73a494ea75c49256ccd7f46538ea37a39169e9bea4121202c1d05bac77a2646970667358221220cd7459b4d7e40287665ff953eb1a3332dcd3cd08d88aeafb07e9e0448461944564736f6c63430008170033 - │ ├─ [0] VM::etch(GeneralConfig: [0x1CED95eC8629bdA85E80B6C506C15DB62aB8f761], 0x608060405234801561001057600080fd5b50600436106102745760003560e01c806379a7cfee11610151578063c9b294a1116100c3578063e26d0fb811610087578063e26d0fb81461065e578063e8dc9f9e14610671578063e8f98f8814610684578063f431103e14610697578063f55de1c0146106b7578063ff4e1d29146106ca57610274565b8063c9b294a1146105fd578063cedb75ef14610610578063cfb1418e14610625578063d3a3968614610638578063d88236271461064b57610274565b80639c8afddb116101155780639c8afddb1461055c578063a503f7f6146105a9578063a6d90726146105bc578063b3148946146105cf578063be40131f146105d7578063be657518146105ea57610274565b806379a7cfee146105085780637b3781b41461051b578063857d8fd31461052e578063871c24411461054157806387c2a5f91461055457610274565b80633147acd2116101ea57806354b975f8116101ae57806354b975f81461049e578063592a3eb3146104b15780635dd88699146104c45780635e01eb5a146104d757806362bce40b146104df578063667954fc146104e757610274565b80633147acd21461043157806334781f1e14610444578063448522d91461046557806346680400146104785780634af69e161461048b57610274565b80631bd523a61161023c5780631bd523a6146103b25780631da438e1146103c557806323cfba33146103d857806325194225146103eb578063279c966a146103fe578063310fea181461041157610274565b80630110da29146103305780630b60eb131461034e5780630ddd44721461036157806311dc119e146103745780631b0c440b14610387575b632273febf60e21b6000356001600160e01b031916016102a25760006102986106d2565b9050805160208201f35b60405162461bcd60e51b815260206004820152605060248201527f47656e6572616c436f6e6669673a20556e6b6e6f776e20696e7374727563746960448201527f6f6e2c20706c656173652072656e616d6520696e7465726661636520746f207360648201526f6861726564417267756d656e7473282960801b608482015260a4015b60405180910390fd5b005b610338610764565b6040516103459190613c4e565b60405180910390f35b61033861035c366004613d41565b610773565b61033861036f366004613da8565b61083a565b610338610382366004613ddc565b6108a2565b61039a610395366004613e34565b610b69565b6040516001600160a01b039091168152602001610345565b6103386103c0366004613e34565b610bd5565b6103386103d3366004613e34565b610d0a565b6103386103e6366004613e34565b610e0a565b6103386103f9366004613e4d565b610e2a565b61033861040c366004613e34565b610e3a565b61042461041f366004613e34565b610f37565b6040516103459190613ec2565b61032e61043f366004613e34565b610f52565b61032e610452366004613f0f565b6015805460ff1916911515919091179055565b610338610473366004613e34565b6111ba565b61032e610486366004613f31565b6112e2565b610424610499366004613e34565b611305565b61032e6104ac366004613f79565b611323565b61032e6104bf366004613fea565b6114d7565b61032e6104d23660046140a8565b61159c565b61039a6115b9565b6103386116b3565b6104fa6104f53660046140ee565b6116d5565b604051908152602001610345565b61032e610516366004614132565b611970565b6104fa610529366004614160565b611a9d565b6104fa61053c366004613e34565b611b10565b6104fa61054f366004614190565b611ba1565b6103386106d2565b60408051808201825260008082526020918201528151808301835260015460ff80821615158084526101009092041615159183019182528351908152905115159181019190915201610345565b6104fa6105b7366004613e34565b611bad565b6103386105ca3660046141ad565b611e65565b610338612176565b6103386105e5366004613e4d565b612185565b6103386105f8366004613d41565b612195565b61032e61060b3660046141e6565b61224f565b466000908152601760205260409020546104fa565b6103386106333660046141ad565b6123cc565b61039a610646366004614234565b6125db565b610338610659366004613ddc565b6125fa565b61033861066c366004613e34565b6128b4565b61033861067f366004613da8565b6129e7565b61039a610692366004613f79565b612a44565b6104fa6106a5366004613e34565b60009081526017602052604090205490565b61039a6106c53660046140a8565b612a86565b610338612ace565b6060601880546106e190614256565b80601f016020809104026020016040519081016040528092919081815260200182805461070d90614256565b801561075a5780601f1061072f5761010080835404028352916020019161075a565b820191906000526020600020905b81548152906001019060200180831161073d57829003601f168201915b5050505050905090565b6060600280546106e190614256565b6060600082600181111561078957610789614290565b1461079d576107988484611e65565b610832565b6108328484600a80546107af90614256565b80601f01602080910402602001604051908101604052809291908181526020018280546107db90614256565b80156108285780601f106107fd57610100808354040283529160200191610828565b820191906000526020600020905b81548152906001019060200180831161080b57829003601f168201915b5050505050612185565b949350505050565b60606000600c54600160a01b900460ff16600181111561085c5761085c614290565b1461087c57600c54610877906001600160a01b031683611e65565b61089c565b600b54600a805461089c926001600160a01b03169185916107af90614256565b92915050565b604080516008808252610120820190925260609160009190816020015b60608152602001906001900390816108bf5790505090506040518060400160405280600481526020016318d85cdd60e21b81525081600081518110610906576109066142a6565b6020026020010181905250604051806040016040528060068152602001651dd85b1b195d60d21b81525081600181518110610943576109436142a6565b60200260200101819052506040518060400160405280600481526020016339b4b3b760e11b8152508160028151811061097e5761097e6142a6565b6020026020010181905250604051806040016040528060068152602001652d2d66726f6d60d01b815250816003815181106109bb576109bb6142a6565b6020908102919091010152604051632b65311f60e11b81526001600160a01b0386166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa158015610a18573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a4091908101906142ec565b81600481518110610a5357610a536142a6565b60200260200101819052506040518060400160405280600d81526020016c2d2d707269766174652d6b657960981b81525081600581518110610a9757610a976142a6565b6020026020010181905250610aab83612b12565b81600681518110610abe57610abe6142a6565b60200260200101819052508381600781518110610add57610add6142a6565b6020908102919091010152604051638916046760e01b8152600080516020614e2c83398151915290638916046790610b19908490600401614334565b6000604051808303816000875af1158015610b38573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b6091908101906142ec565b95945050505050565b600080610b75836111ba565b9050805160001415610b8684612b36565b604051602001610b9691906143b4565b60405160208183030381529060405290610bc35760405162461bcd60e51b81526004016103259190613c4e565b50610bce4682612a86565b9392505050565b6000818152601060205260409020805460609190610bf290614256565b159050610c975760008281526010602052604090208054610c1290614256565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3e90614256565b8015610c8b5780601f10610c6057610100808354040283529160200191610c8b565b820191906000526020600020905b815481529060010190602001808311610c6e57829003601f168201915b50505050509050919050565b600d8054610ca490614256565b159050610ce6576000828152600f60209081526040918290209151610cd092600d9290918291016144ad565b6040516020818303038152906040529050919050565b6000828152600f60209081526040918290209151610cd09291016144e4565b919050565b6000818152601660205260409020600201805460609190610d2a90614256565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5690614256565b8015610da35780601f10610d7857610100808354040283529160200191610da3565b820191906000526020600020905b815481529060010190602001808311610d8657829003601f168201915b505050505090508051600003610d055760405162461bcd60e51b815260206004820152602660248201527f4e6574776f726b436f6e6669673a204e6574776f726b20616c696173206e6f7460448201526508199bdd5b9960d21b6064820152608401610325565b6000818152601660205260409020600501805460609190610c1290614256565b6060610832848461038285612b5c565b6000818152601660205260409020600401805460609190610e5a90614256565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8690614256565b8015610ed35780601f10610ea857610100808354040283529160200191610ed3565b820191906000526020600020905b815481529060010190602001808311610eb657829003601f168201915b505050505090508051600003610d055760405162461bcd60e51b815260206004820152602360248201527f4e6574776f726b20436f6e6669673a20454e56206c6162656c206e6f7420666f6044820152621d5b9960ea1b6064820152608401610325565b600081815260116020526040812060609190610bce90612e80565b611065610f7960405180604001604052806003815260200162051f1f60e91b815250612e8d565b6040518060400160405280600d81526020016c29bbb4ba31b434b733903a379d60991b815250611046601660008681526020019081526020016000206002018054610fc390614256565b80601f0160208091040260200160405190810160405280929190818152602001828054610fef90614256565b801561103c5780601f106110115761010080835404028352916020019161103c565b820191906000526020600020905b81548152906001019060200180831161101f57829003601f168201915b5050505050612eb6565b604051806040016040528060018152602001600560f91b815250612edf565b6000818152601660205260409020547f3650438c5b6b158a3b6da933280b9ac715c85c6e9616415bededfd3e2fa4538981016110e35760405162461bcd60e51b815260206004820152601e60248201527f4e6574776f726b20436f6e6669673a20556e65786973747320666f726b2100006044820152606401610325565b604051639ebf682760e01b815260048101829052600080516020614e2c83398151915290639ebf682790602401600060405180830381600087803b15801561112a57600080fd5b505af115801561113e573d6000803e3d6000fd5b505050600083815260166020526040902060010154461490506111ae5760405162461bcd60e51b815260206004820152602260248201527f4e6574776f726b436f6e6669673a2053776974636820636861696e206661696c604482015261195960f21b6064820152608401610325565b6111b6612f2e565b5050565b606060006111c783612b36565b6000848152600f602052604090208054919250906111e490614256565b80601f016020809104026020016040519081016040528092919081815260200182805461121090614256565b801561125d5780601f106112325761010080835404028352916020019161125d565b820191906000526020600020905b81548152906001019060200180831161124057829003601f168201915b50505050509150818051906020012081805190602001201461127f5780611281565b815b915081516000141581600f60008681526020019081526020016000206040516020016112ae929190614504565b604051602081830303815290604052906112db5760405162461bcd60e51b81526004016103259190613c4e565b5050919050565b601880546112ef90614256565b1590506112f95750565b60186111b682826145e9565b60008181526016602052604090206001015460609061089c90610f37565b60005460ff1615611332575050565b80156114b4576000611396604051806040016040528060018152602001600160fe1b81525084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506131239050565b805190915060005b818110156114b0576113ed604051806040016040528060038152602001626c6f6760e81b8152508483815181106113d7576113d76142a6565b60200260200101516131cd90919063ffffffff16565b15611403576001805460ff1916811790556114a8565b611437604051806040016040528060068152602001653a3932bd37b960d11b8152508483815181106113d7576113d76142a6565b15611450576001805461ff0019166101001790556114a8565b6114a86114896040518060400160405280601581526020017402ab739bab83837b93a32b21031b7b6b6b0b7321d1605d1b815250612eb6565b84838151811061149b5761149b6142a6565b60200260200101516131e3565b60010161139e565b5050505b60026114c18284836146a8565b506000805460ff191660011790556111b6613228565b60008681526017602052604090819020869055805160c08101909152806114fe86896116d5565b815260208082018990526040808301889052606083018790526080830186905260a09092018490526000888152601682528290208351815590830151600182015590820151600282019061155290826145e9565b506060820151600382019061156790826145e9565b506080820151600482019061157c90826145e9565b5060a0820151600582019061159190826145e9565b505050505050505050565b60008281526010602052604090206115b482826145e9565b505050565b600154600090610100900460ff166115dc57600b546001600160a01b03166115e9565b600c546001600160a01b03165b90506001600160a01b03811615801561162457506116246116164660009081526017602052604090205490565b611620600061340f565b1490565b1561164c57507fee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f385b6001600160a01b0381166116b05760405162461bcd60e51b815260206004820152602560248201527f47656e6572616c436f6e6669673a2053656e6465722069732061646472657373604482015264283078302960d81b6064820152608401610325565b90565b6040805180820190915260088152672222a82627aca2a960c11b602082015290565b6000807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b0316632f103f226040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611755575060408051601f3d908101601f1916820190925261175291810190614768565b60015b6117995761178261177d604051806060016040528060318152602001614dfb60319139612eb6565b613434565b50600080516020614e4c833981519152905061089c565b90504683036117a957905061089c565b60155460ff166117ca5750600080516020614e4c833981519152905061089c565b60008381526017602090815260408083205483526016909152902054600080516020614e4c833981519152811461180457915061089c9050565b60405163975a6ce960e01b8152600090600080516020614e2c8339815191529063975a6ce990611838908990600401613c4e565b600060405180830381865afa158015611855573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261187d91908101906142ec565b604051630637469360e31b8152909150600080516020614e2c833981519152906331ba3498906118b1908490600401613c4e565b6020604051808303816000875af19250505080156118ec575060408051601f3d908101601f191682019092526118e991810190614768565b60015b6119345761191a6119146040518060600160405280602b8152602001614dd0602b9139613477565b826131e3565b50600080516020614e4c833981519152925061089c915050565b61196561195f8860405160200161194b9190614781565b604051602081830303815290604052612e8d565b826134a0565b935061089c92505050565b6000838152601660205260408120600101549061198c846111ba565b9050811580159061199d5750805115155b611a025760405162461bcd60e51b815260206004820152603060248201527f47656e6572616c436f6e6669673a204e6574776f726b206f7220436f6e74726160448201526f18dd0812d95e481b9bdd08199bdd5b9960821b6064820152608401610325565b611a0d82848361224f565b6000828152601160205260409020611a2590846134e5565b5060008281526013602090815260408083206001600160a01b038716845282528083208790558483526012909152908190209051849190611a679084906147df565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050505050565b60008281526013602090815260408083206001600160a01b0385168452909152902054801515611acc82612b36565b604051602001611adc91906147fb565b60405160208183030381529060405290611b095760405162461bcd60e51b81526004016103259190613c4e565b5092915050565b6000818152601660205260409020547f3650438c5b6b158a3b6da933280b9ac715c85c6e9616415bededfd3e2fa453898101610d055760405162461bcd60e51b815260206004820152602a60248201527f4e6574776f726b436f6e6669673a204e6574776f726b20666f726b206973206e6044820152691bdd0818dc99585d195960b21b6064820152608401610325565b600061089c4683611a9d565b600080601660008481526020019081526020016000206040518060c00160405290816000820154815260200160018201548152602001600282018054611bf290614256565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1e90614256565b8015611c6b5780601f10611c4057610100808354040283529160200191611c6b565b820191906000526020600020905b815481529060010190602001808311611c4e57829003601f168201915b50505050508152602001600382018054611c8490614256565b80601f0160208091040260200160405190810160405280929190818152602001828054611cb090614256565b8015611cfd5780601f10611cd257610100808354040283529160200191611cfd565b820191906000526020600020905b815481529060010190602001808311611ce057829003601f168201915b50505050508152602001600482018054611d1690614256565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4290614256565b8015611d8f5780601f10611d6457610100808354040283529160200191611d8f565b820191906000526020600020905b815481529060010190602001808311611d7257829003601f168201915b50505050508152602001600582018054611da890614256565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd490614256565b8015611e215780601f10611df657610100808354040283529160200191611e21565b820191906000526020600020905b815481529060010190602001808311611e0457829003601f168201915b5050509190925250506015805460ff19166001179055509050611e4c816040015182602001516116d5565b6000938452601660205260409093208390555090919050565b604080516009808252610140820190925260609160009190816020015b6060815260200190600190039081611e825790505090506040518060400160405280600481526020016318d85cdd60e21b81525081600081518110611ec957611ec96142a6565b6020026020010181905250604051806040016040528060068152602001651dd85b1b195d60d21b81525081600181518110611f0657611f066142a6565b60200260200101819052506040518060400160405280600481526020016339b4b3b760e11b81525081600281518110611f4157611f416142a6565b6020026020010181905250604051806040016040528060068152602001652d2d66726f6d60d01b81525081600381518110611f7e57611f7e6142a6565b6020908102919091010152604051632b65311f60e11b81526001600160a01b0385166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa158015611fdb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261200391908101906142ec565b81600481518110612016576120166142a6565b6020026020010181905250604051806040016040528060088152602001671696ba3932bd37b960c11b81525081600581518110612055576120556142a6565b6020026020010181905250604051806040016040528060068152602001652d2d6461746160d01b81525081600681518110612092576120926142a6565b60200260200101819052506040518060400160405280600b81526020016a2d2d66726f6d2d66696c6560a81b815250816007815181106120d4576120d46142a6565b602002602001018190525082816008815181106120f3576120f36142a6565b6020908102919091010152604051638916046760e01b8152600080516020614e2c8339815191529063891604679061212f908490600401614334565b6000604051808303816000875af115801561214e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261083291908101906142ec565b6060601480546106e190614256565b6060610832848461065985612b5c565b606060008260018111156121ab576121ab614290565b146121ba5761079884846123cc565b6108328484600a80546121cc90614256565b80601f01602080910402602001604051908101604052809291908181526020018280546121f890614256565b80156122455780601f1061221a57610100808354040283529160200191612245565b820191906000526020600020905b81548152906001019060200180831161222857829003601f168201915b5050505050610e2a565b60405163348051d760e11b815260048101849052600080516020614e2c8339815191529063c657c7189084906122d4908490636900a3ae90602401600060405180830381865afa1580156122a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122cf91908101906142ec565b612e8d565b6122dd85612eb6565b604051632b65311f60e11b81526001600160a01b0388166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa15801561232f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261235791908101906142ec565b6040516020016123699392919061487c565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016123959291906148f6565b600060405180830381600087803b1580156123af57600080fd5b505af11580156123c3573d6000803e3d6000fd5b50505050505050565b604080516007808252610100820190925260609160009190816020015b60608152602001906001900390816123e95790505090506040518060400160405280600481526020016318d85cdd60e21b81525081600081518110612430576124306142a6565b6020026020010181905250604051806040016040528060068152602001651dd85b1b195d60d21b8152508160018151811061246d5761246d6142a6565b60200260200101819052506040518060400160405280600481526020016339b4b3b760e11b815250816002815181106124a8576124a86142a6565b6020026020010181905250604051806040016040528060068152602001652d2d66726f6d60d01b815250816003815181106124e5576124e56142a6565b6020908102919091010152604051632b65311f60e11b81526001600160a01b0385166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa158015612542573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261256a91908101906142ec565b8160048151811061257d5761257d6142a6565b6020026020010181905250604051806040016040528060088152602001671696ba3932bd37b960c11b815250816005815181106125bc576125bc6142a6565b602002602001018190525082816006815181106120f3576120f36142a6565b600082815260166020526040812060010154610bce906106c5846111ba565b60408051600a808252610160820190925260609160009190816020015b60608152602001906001900390816126175790505090506040518060400160405280600481526020016318d85cdd60e21b8152508160008151811061265e5761265e6142a6565b6020026020010181905250604051806040016040528060068152602001651dd85b1b195d60d21b8152508160018151811061269b5761269b6142a6565b60200260200101819052506040518060400160405280600481526020016339b4b3b760e11b815250816002815181106126d6576126d66142a6565b6020026020010181905250604051806040016040528060068152602001652d2d66726f6d60d01b81525081600381518110612713576127136142a6565b6020908102919091010152604051632b65311f60e11b81526001600160a01b0386166004820152600080516020614e2c833981519152906356ca623e90602401600060405180830381865afa158015612770573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261279891908101906142ec565b816004815181106127ab576127ab6142a6565b60200260200101819052506040518060400160405280600d81526020016c2d2d707269766174652d6b657960981b815250816005815181106127ef576127ef6142a6565b602002602001018190525061280383612b12565b81600681518110612816576128166142a6565b6020026020010181905250604051806040016040528060068152602001652d2d6461746160d01b81525081600781518110612853576128536142a6565b60200260200101819052506040518060400160405280600b81526020016a2d2d66726f6d2d66696c6560a81b81525081600881518110612895576128956142a6565b60200260200101819052508381600981518110610add57610add6142a6565b6000818152601660205260408120600301805460609291906128d590614256565b80601f016020809104026020016040519081016040528092919081815260200182805461290190614256565b801561294e5780601f106129235761010080835404028352916020019161294e565b820191906000526020600020905b81548152906001019060200180831161293157829003601f168201915b5050505050905080516000036129bc5760405162461bcd60e51b815260206004820152602d60248201527f4e6574776f726b436f6e6669673a204465706c6f796d656e742064697265637460448201526c1bdc9e481b9bdd08199bdd5b99609a1b6064820152608401610325565b6014816040516020016129d092919061491a565b604051602081830303815290604052915050919050565b60606000600c54600160a01b900460ff166001811115612a0957612a09614290565b14612a2457600c54610877906001600160a01b0316836123cc565b600b54600a805461089c926001600160a01b03169185916121cc90614256565b6000610bce4684848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a8692505050565b6000828152601260205260408082209051612aa29084906147df565b90815260405160209181900382018120546001600160a01b0316925082151591611adc9185910161493f565b6040805180820190915260098152687472657a6f723a2f2f60b81b602082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6060612b1d826134fa565b8051613078825260020160011990910190815292915050565b604080518082019091526000808252601f8201839052815182016020015260609061089c565b60405163c1978d1f60e01b8152600090600080516020614e2c8339815191529063c1978d1f90612b90908590600401613c4e565b602060405180830381865afa925050508015612bc9575060408051601f3d908101601f19168201909252612bc691810190614768565b60015b61089c5760408051600380825260808201909252600091816020015b6060815260200190600190039081612be557505060405163f877cb1960e01b8152909150600080516020614e2c8339815191529063f877cb1990612c2d908690600401613c4e565b600060405180830381865afa925050508015612c6b57506040513d6000823e601f3d908101601f19168201604052612c6891908101906142ec565b60015b612ca65782604051602001612c8091906149aa565b60408051601f198184030181529082905262461bcd60e51b825261032591600401613c4e565b8082600281518110612cba57612cba6142a6565b6020026020010181905250506040518060400160405280600281526020016106f760f41b81525081600081518110612cf457612cf46142a6565b6020026020010181905250604051806040016040528060048152602001631c99585960e21b81525081600181518110612d2f57612d2f6142a6565b6020908102919091010152604051638916046760e01b8152600080516020614e2c8339815191529063fa91454d9082906371aad10d908290638916046790612d7b908890600401614334565b6000604051808303816000875af1158015612d9a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612dc291908101906142ec565b6040518263ffffffff1660e01b8152600401612dde9190613c4e565b600060405180830381865afa158015612dfb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e2391908101906142ec565b6040518263ffffffff1660e01b8152600401612e3f9190613c4e565b602060405180830381865afa158015612e5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bce9190614768565b60606000610bce8361355c565b606061089c604051806040016040528060058152602001641b5b39346d60d81b815250836135b7565b606061089c604051806040016040528060058152602001641b5b39336d60d81b815250836135b7565b612f2884848484604051602401612ef99493929190614a7f565b60408051601f198184030181529190526020810180516001600160e01b0316636f34790560e11b179052613601565b50505050565b60405163348051d760e11b81524360048201526131219061177d90600080516020614e2c83398151915290636900a3ae90602401600060405180830381865afa158015612f7f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fa791908101906142ec565b60405163348051d760e11b8152426004820152600080516020614e2c83398151915290636900a3ae90602401600060405180830381865afa158015612ff0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261301891908101906142ec565b60405163348051d760e11b81523a6004820152600080516020614e2c83398151915290636900a3ae90602401600060405180830381865afa158015613061573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261308991908101906142ec565b60405163348051d760e11b8152456004820152600080516020614e2c83398151915290636900a3ae90602401600060405180830381865afa1580156130d2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130fa91908101906142ec565b60405160200161310d9493929190614ad7565b604051602081830303815290604052612eb6565b565b60606000613131848461360a565b9050601f1960208201600183510160051b81018651838201526001845101845260005b8251606084528181146131995760405182820380825286601f8201165b8b8501810151838201528701806131715750600082820160200152603f018616810160405284525b87516020949094019301905081831061315457505050508091508251611b0957602081019150600281510382525092915050565b8051602091820120825192909101919091201490565b6111b682826040516024016131f9929190614bae565b60408051601f198184030181529190526020810180516001600160e01b0316634b5c427760e01b179052613601565b600154610100900460ff1615613349576132406136d9565b600c8054604080518082019091529182526b2a3932bd37b929b2b73232b960a11b602083015261327b9146916001600160a01b03169061224f565b604080518082018252600e81526d23b2b732b930b621b7b73334b39d60911b6020820152600c54915163028a249b60e41b81526001600160a01b03909216600483015261312191600080516020614e2c833981519152906328a249b0906024015b6000604051808303816000875af11580156132fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261332391908101906142ec565b60405180604001604052806008815260200167456e61626c65642160c01b815250613870565b4660009081526017602052604081205461336290610e3a565b905061336d816138b7565b600b5460408051808201909152600981526822a72b29b2b73232b960b91b60208201526133a79146916001600160a01b039091169061224f565b604080518082018252600e81526d23b2b732b930b621b7b73334b39d60911b6020820152600b54915163028a249b60e41b81526001600160a01b03909216600483015261340c91600080516020614e2c833981519152906328a249b0906024016132dc565b50565b600061089c61341d83613972565b6000601f600183510310601f830151029050919050565b61340c816040516024016134489190613c4e565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052613601565b606061089c604051806040016040528060058152602001641b5b39316d60d81b815250836135b7565b6111b682826040516024016134b6929190614bd3565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052613601565b6000610bce836001600160a01b038416613a84565b606060806040510190506020810160405260008152806f30313233343536373839616263646566600f52600119835b600f811651938201936001850153600f8160041c1651845360081c80613529575050819003601f19909101908152919050565b606081600001805480602002602001604051908101604052809291908181526020018280548015610c8b57602002820191906000526020600020905b8154815260200190600101908083116135985750505050509050919050565b60608282604051806040016040528060048152602001631b5b306d60e01b8152506040516020016135ea93929190614bf5565b604051602081830303815290604052905092915050565b61340c81612af1565b6060825182518181116136d157602085019450602084019350602060405101925084600182848801030160006020841061364357508286205b601f841660200360031b87515b8951818118831c6136a55783156136835783878c20146136835760018b019a50848b1061367d57506136b4565b50613650565b858b0389529986019960209098019786156136a557848b1061367d57506136b4565b5060018a019950838a10613650575b505060408051601f198189030160051c8152602090970190525050505b505092915050565b32731804c8ab1f12e6bbf3894d4083f33e07309d1f381461370b57600c80546001600160a01b0319163217905561385b565b600080516020614e2c83398151915263f877cb196137276116b3565b6040518263ffffffff1660e01b81526004016137439190613c4e565b600060405180830381865afa92505050801561378157506040513d6000823e601f3d908101601f1916820160405261377e91908101906142ec565b60015b6137a65761378d6116b3565b613795612ace565b604051602001612c80929190614c38565b600080516020614e2c83398151915263c6ce059d6137dc6137c5612ace565b604080516020810190915260008152859190613ad3565b6040518263ffffffff1660e01b81526004016137f89190613c4e565b602060405180830381865afa158015613815573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138399190614d63565b600c80546001600160a01b0319166001600160a01b0392909216919091179055505b600c805460ff60a01b1916600160a01b179055565b6115b483838360405160240161388893929190614d80565b60408051601f198184030181529190526020810180516001600160e01b0316632ced7cef60e01b179052613601565b600a6138c382826145e9565b50600c805460ff60a01b19169055600080516020614e2c83398151915263221000646138ee83612b5c565b6040518263ffffffff1660e01b815260040161390c91815260200190565b6020604051808303816000875af115801561392b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061394f9190614d63565b600b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600082600281111561398857613988614290565b036139ae575050604080518082019091526005815264131bd8d85b60da1b602082015290565b60018260028111156139c2576139c2614290565b036139ef57505060408051808201909152600c81526b149bdb9a5b95195cdd1b995d60a21b602082015290565b6002826002811115613a0357613a03614290565b03613a3057505060408051808201909152600c81526b149bdb9a5b93585a5b9b995d60a21b602082015290565b60405162461bcd60e51b8152602060048201526024808201527f44656661756c744e6574776f726b3a20556e6b6e6f776e206e6574776f726b206044820152636e616d6560e01b6064820152608401610325565b6000818152600183016020526040812054613acb5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561089c565b50600061089c565b60608351835183516020870196506020860195506020850194506020604051019350828701838311613ba557600183820301600060208510613b1457508388205b601f851660200360031b89515b8b51818118831c613b8c578315613b5b5783888e2014613b5b57808a5260019c8d019c90990198848d10613b555750613ba0565b50613b21565b60005b8b8101518b820152602001878110613b5e57509b87019b988601988715613b8c57848d10613b555750613ba0565b895260019b8c019b90980197838c10613b21575b505050505b84935060206040510194508781038585030192505b80881015613bd5578751845260209788019790930192613bba565b50506000818401908152602001604052601f19909201918252509392505050565b613121614db9565b60005b83811015613c19578181015183820152602001613c01565b50506000910152565b60008151808452613c3a816020860160208601613bfe565b601f01601f19169290920160200192915050565b602081526000610bce6020830184613c22565b6001600160a01b038116811461340c57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613cb457613cb4613c76565b604052919050565b60006001600160401b03821115613cd557613cd5613c76565b50601f01601f191660200190565b6000613cf6613cf184613cbc565b613c8c565b9050828152838383011115613d0a57600080fd5b828260208301376000602084830101529392505050565b600082601f830112613d3257600080fd5b610bce83833560208501613ce3565b600080600060608486031215613d5657600080fd5b8335613d6181613c61565b925060208401356001600160401b03811115613d7c57600080fd5b613d8886828701613d21565b925050604084013560028110613d9d57600080fd5b809150509250925092565b600060208284031215613dba57600080fd5b81356001600160401b03811115613dd057600080fd5b61083284828501613d21565b600080600060608486031215613df157600080fd5b8335613dfc81613c61565b925060208401356001600160401b03811115613e1757600080fd5b613e2386828701613d21565b925050604084013590509250925092565b600060208284031215613e4657600080fd5b5035919050565b600080600060608486031215613e6257600080fd5b8335613e6d81613c61565b925060208401356001600160401b0380821115613e8957600080fd5b613e9587838801613d21565b93506040860135915080821115613eab57600080fd5b50613eb886828701613d21565b9150509250925092565b6020808252825182820181905260009190848201906040850190845b81811015613f035783516001600160a01b031683529284019291840191600101613ede565b50909695505050505050565b600060208284031215613f2157600080fd5b81358015158114610bce57600080fd5b600060208284031215613f4357600080fd5b81356001600160401b03811115613f5957600080fd5b8201601f81018413613f6a57600080fd5b61083284823560208401613ce3565b60008060208385031215613f8c57600080fd5b82356001600160401b0380821115613fa357600080fd5b818501915085601f830112613fb757600080fd5b813581811115613fc657600080fd5b866020828501011115613fd857600080fd5b60209290920196919550909350505050565b60008060008060008060c0878903121561400357600080fd5b863595506020870135945060408701356001600160401b038082111561402857600080fd5b6140348a838b01613d21565b9550606089013591508082111561404a57600080fd5b6140568a838b01613d21565b9450608089013591508082111561406c57600080fd5b6140788a838b01613d21565b935060a089013591508082111561408e57600080fd5b5061409b89828a01613d21565b9150509295509295509295565b600080604083850312156140bb57600080fd5b8235915060208301356001600160401b038111156140d857600080fd5b6140e485828601613d21565b9150509250929050565b6000806040838503121561410157600080fd5b82356001600160401b0381111561411757600080fd5b61412385828601613d21565b95602094909401359450505050565b60008060006060848603121561414757600080fd5b83359250602084013591506040840135613d9d81613c61565b6000806040838503121561417357600080fd5b82359150602083013561418581613c61565b809150509250929050565b6000602082840312156141a257600080fd5b8135610bce81613c61565b600080604083850312156141c057600080fd5b82356141cb81613c61565b915060208301356001600160401b038111156140d857600080fd5b6000806000606084860312156141fb57600080fd5b83359250602084013561420d81613c61565b915060408401356001600160401b0381111561422857600080fd5b613eb886828701613d21565b6000806040838503121561424757600080fd5b50508035926020909101359150565b600181811c9082168061426a57607f821691505b60208210810361428a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006142ca613cf184613cbc565b90508281528383830111156142de57600080fd5b610bce836020830184613bfe565b6000602082840312156142fe57600080fd5b81516001600160401b0381111561431457600080fd5b8201601f8101841361432557600080fd5b610832848251602084016142bc565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561438b57603f19888603018452614379858351613c22565b9450928501929085019060010161435d565b5092979650505050505050565b600081516143aa818560208601613bfe565b9290920192915050565b7f436f6e7472616374436f6e666967286765744164647265737346726f6d43757281527f72656e744e6574776f726b293a20436f6e74726163742054797065206e6f74206020820152660ccdeeadcc840560cb1b604082015260008251614422816047850160208701613bfe565b602960f81b6047939091019283015250604801919050565b6000815461444781614256565b6001828116801561445f5760018114614474576144a3565b60ff19841687528215158302870194506144a3565b8560005260208060002060005b8581101561449a5781548a820152908401908201614481565b50505082870194505b5050505092915050565b60006144c26144bc838761443a565b8561443a565b641739b7b61d60d91b81526144da600582018561443a565b9695505050505050565b60006144f0828461443a565b630b9cdbdb60e21b81526004019392505050565b7f436f6e7472616374436f6e66696728676574436f6e74726163744e616d65293a81527f20436f6e74726163742054797065206e6f7420666f756e64202800000000000060208201526000835161456281603a850160208801613bfe565b61148560f11b603a9184019182015271029ba37b930b3b2902730b6b29026b0b81d160751b603c820152610b60604e82018561443a565b601f8211156115b4576000816000526020600020601f850160051c810160208610156145c25750805b601f850160051c820191505b818110156145e1578281556001016145ce565b505050505050565b81516001600160401b0381111561460257614602613c76565b614616816146108454614256565b84614599565b602080601f83116001811461464b57600084156146335750858301515b600019600386901b1c1916600185901b1785556145e1565b600085815260208120601f198616915b8281101561467a5788860151825594840194600190910190840161465b565b50858210156146985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b038311156146bf576146bf613c76565b6146d3836146cd8354614256565b83614599565b6000601f84116001811461470757600085156146ef5750838201355b600019600387901b1c1916600186901b178355614761565b600083815260209020601f19861690835b828110156147385786850135825560209485019460019092019101614718565b50868210156147555760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60006020828403121561477a57600080fd5b5051919050565b6e02732ba3bb7b935a1b7b73334b39d1608d1b8152600082516147ab81600f850160208701613bfe565b7f20666f726b2063726561746564207769746820666f726b49643a000000000000600f939091019283015250602901919050565b600082516147f1818460208701613bfe565b9190910192915050565b7f436f6e7472616374436f6e66696728676574436f6e747261637454797065427981527f52617744617461293a20436f6e747261637454797065206e6f7420666f756e64602082015261040560f31b604082015260008251614864816042850160208701613bfe565b602960f81b6042939091019283015250604301919050565b600560fb1b815260008451614898816001850160208901613bfe565b602960f81b60019184019182015284516148b9816002840160208901613bfe565b605b60f81b6002929091019182015283516148db816003840160208801613bfe565b605d60f81b6003929091019182015260040195945050505050565b6001600160a01b038316815260406020820181905260009061083290830184613c22565b6000614926828561443a565b8351614936818360208801613bfe565b01949350505050565b7f436f6e7472616374436f6e66696728676574416464726573734279526177446181527f7461293a2041646472657373206e6f7420666f756e643a20000000000000000060208201526000825161499d816038850160208701613bfe565b9190910160380192915050565b7f0a47656e6572616c436f6e6669673a204572726f722066696e64696e6720656e81527f762061646472657373210a2d20506c65617365206d616b6520602e656e76602060208201527f66696c6520616e6420637265617465206669656c642060000000000000000000604082015260008251614a2e816057850160208701613bfe565b603d60f81b60579390910192830152507f7b6f705f7365637265745f7265666572656e63655f6f725f796f75725f70726960588201526903b30ba32afb5b2bcbeb60b51b6078820152608201919050565b608081526000614a926080830187613c22565b8281036020840152614aa48187613c22565b90508281036040840152614ab88186613c22565b90508281036060840152614acc8185613c22565b979650505050505050565b6d0213637b1b590273ab6b132b91d160951b815260008551614b0081600e850160208a01613bfe565b8083019050620103e160ed1b80600e8301526a02a34b6b2b9ba30b6b81d160ad1b60118301528651614b3981601c850160208b01613bfe565b601c92019182018190526a023b0b990283934b1b29d160ad1b601f8301528551614b6a81602a850160208a01613bfe565b602a920191820152700213637b1b59023b0b9902634b6b4ba1d1607d1b602d820152614b99603e820185614398565b600560f91b8152600101979650505050505050565b604081526000614bc16040830185613c22565b8281036020840152610b608185613c22565b604081526000614be66040830185613c22565b90508260208301529392505050565b60008451614c07818460208901613bfe565b845190830190614c1b818360208901613bfe565b8451910190614c2e818360208801613bfe565b0195945050505050565b7f0a47656e6572616c436f6e6669673a204572726f722066696e64696e6720747281527f657a6f722061646472657373210a2d20506c65617365206f766572726964652060208201527f64656661756c742073656e646572207769746820602d2d73656e646572207b7960408201527f6f75725f7472657a6f725f6163636f756e747d6020746167200a2d204f72206d60608201527f616b6520602e656e76602066696c6520616e6420637265617465206669656c64608082015261010360f51b60a082015260008351614d138160a2850160208801613bfe565b603d60f81b60a2918401918201528351614d348160a3840160208801613bfe565b7503dbcb7bab92fba3932bd37b92fb0b1b1b7bab73a3eb60551b60a3929091019182015260b901949350505050565b600060208284031215614d7557600080fd5b8151610bce81613c61565b606081526000614d936060830186613c22565b8281036020840152614da58186613c22565b905082810360408401526144da8185613c22565b634e487b7160e01b600052605160045260246000fdfe4e6574776f726b436f6e6669673a2043616e6e6f742063726561746520666f726b20776974682075726c3a4e6574776f726b436f6e6669673a20666f726b206d6f64652064697361626c65642c206e6f2061637469766520666f726b0000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12dc9afbc73a494ea75c49256ccd7f46538ea37a39169e9bea4121202c1d05bac77a2646970667358221220cd7459b4d7e40287665ff953eb1a3332dcd3cd08d88aeafb07e9e0448461944564736f6c63430008170033) - │ │ └─ ← () - │ ├─ [0] VM::label(GeneralConfig: [0x1CED95eC8629bdA85E80B6C506C15DB62aB8f761], "GeneralConfig") - │ │ └─ ← () - │ ├─ [0] VM::makePersistent(ArtifactFactory: [0xD43d5C72f803D06869Ba1ECBf5E151Ff59353E16]) - │ │ └─ ← () - │ ├─ [0] VM::allowCheatcodes(ArtifactFactory: [0xD43d5C72f803D06869Ba1ECBf5E151Ff59353E16]) - │ │ └─ ← () - │ ├─ [0] VM::etch(ArtifactFactory: [0xD43d5C72f803D06869Ba1ECBf5E151Ff59353E16], 0x608060405234801561001057600080fd5b506123c3806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806331718a8f1461003b578063d92e82e414610050575b600080fd5b61004e610049366004611d75565b610081565b005b61006560008051602061236e83398151915281565b6040516001600160a01b03909116815260200160405180910390f35b6101e56101b8868660008051602061236e83398151915260001c6001600160a01b03166323cfba3360008051602061236e83398151915260001c6001600160a01b031663cedb75ef6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011c9190611e78565b6040518263ffffffff1660e01b815260040161013a91815260200190565b600060405180830381865afa158015610157573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261017f9190810190611eb5565b6101918c6001600160a01b0316610daf565b6040516020016101a49493929190611f2c565b604051602081830303815290604052610dd3565b6101c183610e02565b6040516020016101d19190611f9b565b604051602081830303815290604052610e46565b60408051639c8afddb60e01b81528151731ced95ec8629bda85e80b6c506c15db62ab8f76192639c8afddb92600480820193918290030181865afa158015610231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102559190611fe6565b5161031c5761031760405180606001604052806021815260200161234d6021913960405163028a249b60e41b81526001600160a01b038a166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906328a249b0906024016000604051808303816000875af11580156102d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102f89190810190611eb5565b604051806040016040528060018152602001600560f91b815250610e8f565b610da5565b600060008051602061236e83398151915260001c6001600160a01b031663e26d0fb860008051602061236e83398151915260001c6001600160a01b031663cedb75ef6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561038d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b19190611e78565b6040518263ffffffff1660e01b81526004016103cf91815260200190565b600060405180830381865afa1580156103ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104149190810190611eb5565b9050600081878760405160200161042d93929190612041565b60408051601f198184030181529082905263130d191f60e11b82529150606090600190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063261a323e9061047a90869060040161209e565b6020604051808303816000875af1158015610499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bd91906120b1565b156106b4576040516360f9bb1160e01b8152600090737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906104fc90879060040161209e565b600060405180830381865afa158015610519573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105419190810190611eb5565b6040516314a29a0f60e21b8152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063528a683c9061057b9084906004016120cc565b602060405180830381865afa158015610598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bc91906120b1565b156106b2576040516360f9bb1160e01b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063addde2b69082906360f9bb119061060090899060040161209e565b600060405180830381865afa15801561061d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106459190810190611eb5565b6040518263ffffffff1660e01b815260040161066191906120cc565b602060405180830381865afa15801561067e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a29190611e78565b91506106af600183612110565b91505b505b610714604051806040016040528060048152602001636172677360e01b81525088888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879493925050610edb9050565b506040805180820190915260058152646e6f6e636560d81b602082015261073d90839087610f6a565b506040805180820190915260098152686973466f756e64727960b81b602082015261076b9083906001610fa8565b506040805180820190915260088152673232b83637bcb2b960c11b60208201526107979083908e610fe6565b5060408051808201909152600781526618da185a5b925960ca1b60208201526107c290839046610f6a565b506040805180820190915260078152666164647265737360c81b60208201526107ed9083908d610fe6565b5060408051808201909152600b81526a313637b1b5a73ab6b132b960a91b602082015261081c90839043610f6a565b50604080518082019091526009815268074696d657374616d760bc1b602082015261084990839042610f6a565b506040805180820190915260148152730c6dedce8e4c2c6e882c4e6ded8eae8caa0c2e8d60631b60208201526108819083908c611024565b5060408051808201909152600e81526d6e756d4465706c6f796d656e747360901b60208201526108b390839083610f6a565b5060006108e2604051806040016040528060018152602001601d60f91b8152508c61106290919063ffffffff16565b905060008151600214610963578b61093e604051806040016040528060048152602001630b9cdbdb60e21b81525060405180604001604052806005815260200164173539b7b760d91b8152508f61110d9092919063ffffffff16565b60405160200161094f929190612131565b6040516020818303038152906040526109ba565b816000815181106109765761097661217f565b6020026020010151826001815181106109915761099161217f565b60200260200101516040516020016109aa929190612195565b6040516020818303038152906040525b6040516360f9bb1160e01b8152909150600090737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906109f790859060040161209e565b600060405180830381865afa158015610a14573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a3c9190810190611eb5565b90506000610a4982611230565b9050610aaa6040518060400160405280600381526020016261626960e81b815250610aa2610a9d604051806040016040528060058152602001641130b1349160d91b8152508561124990919063ffffffff16565b6112b0565b889190611024565b50610afd60405180604001604052806003815260200162185cdd60ea1b815250610aa2610a9d604051806040016040528060058152602001641130b9ba1160d91b8152508561124990919063ffffffff16565b50610b5660405180604001604052806006815260200165646576646f6360d01b815250610aa2610a9d60405180604001604052806008815260200167113232bb3237b19160c11b8152508561124990919063ffffffff16565b50610bb16040518060400160405280600781526020016675736572646f6360c81b815250610aa2610a9d60405180604001604052806009815260200168113ab9b2b93237b19160b91b8152508561124990919063ffffffff16565b50610c11604051806040016040528060088152602001676d6574616461746160c01b815250610aa2610a9d6040518060400160405280600d81526020016c113930bba6b2ba30b230ba309160991b8152508561124990919063ffffffff16565b50610c786040518060400160405280600d81526020016c1cdd1bdc9859d953185e5bdd5d609a1b815250610aa2610a9d6040518060400160405280600f81526020016e1139ba37b930b3b2a630bcb7baba1160891b8152508561124990919063ffffffff16565b50610cff6040518060400160405280600881526020016762797465636f646560c01b815250610aa2610a9d604051806040016040528060088152602001671137b13532b1ba1160c11b815250610cf96040518060400160405280600a81526020016911313cba32b1b7b2329160b11b8152508761124990919063ffffffff16565b90611249565b50610d906040518060400160405280601081526020016f6465706c6f79656442797465636f646560801b815250610aa2610a9d604051806040016040528060088152602001671137b13532b1ba1160c11b815250610cf960405180604001604052806012815260200171113232b83637bcb2b2213cba32b1b7b2329160711b8152508761124990919063ffffffff16565b9550610d9c86886112bf565b50505050505050505b5050505050505050565b6060610dba8261132e565b8051613078825260020160011990910190815292915050565b6060610dfc604051806040016040528060058152602001641b5b39326d60d81b8152508361139d565b92915050565b60606080604051019050602081016040526000815280600019835b928101926030600a8206018453600a900480610e1d575050819003601f19909101908152919050565b610e8b8282604051602401610e5c9291906121f5565b60408051601f198184030181529190526020810180516001600160e01b0316634b5c427760e01b1790526113e7565b5050565b610ed6838383604051602401610ea79392919061221a565b60408051601f198184030181529190526020810180516001600160e01b0316632ced7cef60e01b1790526113e7565b505050565b60405163f21d52c760e01b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f21d52c790610f199087908790879060040161221a565b6000604051808303816000875af1158015610f38573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f609190810190611eb5565b90505b9392505050565b60405163094f480160e11b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063129e900290610f199087908790879060040161225d565b60405163ac22e97160e01b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ac22e97190610f1990879087908790600401612293565b604051634b96303160e11b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063972c606290610f19908790879087906004016122cb565b6040516388da6d3560e01b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d906388da6d3590610f199087908790879060040161221a565b6060600061107084846113f3565b9050601f1960208201600183510160051b81018651838201526001845101845260005b8251606084528181146110d85760405182820380825286601f8201165b8b8501810151838201528701806110b05750600082820160200152603f018616810160405284525b8751602094909401930190508183106110935750505050809150825161110657602081019150600281510382525b5092915050565b606083518351835160208701965060208601955060208501945060206040510193508287018383116111df5760018382030160006020851061114e57508388205b601f851660200360031b89515b8b51818118831c6111c65783156111955783888e201461119557808a5260019c8d019c90990198848d1061118f57506111da565b5061115b565b60005b8b8101518b82015260200187811061119857509b87019b9886019887156111c657848d1061118f57506111da565b895260019b8c019b90980197838c1061115b575b505050505b84935060206040510194508781038585030192505b8088101561120f5787518452602097880197909301926111f4565b50506000818401908152602001604052601f19909201918252509392505050565b6040805160008082529181905290610f638360ff6114c2565b604080516000815290528151606090600716600203610dfc5781516020830120600061127485611c57565b805190915060051b5b80156112a757818101519550601f19018261129787611c66565b805190602001200361127d578593505b50505092915050565b60606000610f638360006114c2565b60405163e23cd19f60e01b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063e23cd19f906112f890859085906004016121f5565b600060405180830381600087803b15801561131257600080fd5b505af1158015611326573d6000803e3d6000fd5b505050505050565b60606040519050608081016040526f30313233343536373839616263646566600f526002810190506028815260208101600060288201528260601b925060005b808101820184821a600f81165160018301538060041c518253505060018101906012190161136e575050919050565b60608282604051806040016040528060048152602001631b5b306d60e01b8152506040516020016113d093929190612309565b604051602081830303815290604052905092915050565b6113f081611c85565b50565b6060825182518181116114ba57602085019450602084019350602060405101925084600182848801030160006020841061142c57508286205b601f841660200360031b87515b8951818118831c61148e57831561146c5783878c201461146c5760018b019a50848b10611466575061149d565b50611439565b858b03895299860199602090980197861561148e57848b10611466575061149d565b5060018a019950838a10611439575b505060408051601f198189030160051c8152602090970190525050505b505092915050565b6000611bb7565b63101827966000526004601cfd5b805b60016401000026006114ec835160001a90565b1c1615610dfc576001016114d9565b63ffffffff83113d3d3e63ffffffff821b191691901b1790565b6040516115378486036078611532601f19868903016058886114fb565b6114fb565b959095178552505050602082016040525090565b60008061155c8460186000516114fb565b61156687876114d7565b9150868210611575575061169b565b815160001a602281036115a7578261158f898585896118a7565b935061159f60048583868a611515565b94505061168c565b605b81036115c4576115bb888484886116a4565b9350935061168c565b607b81036115d8576115bb8884848861176d565b6703ff200000000000811c600116156115f7576115bb8884848861197b565b8760048401116116515782835160e01c6374727565810361162f5760048501945061162660058684878b611515565b9550505061168c565b636e756c6c810361164e5760048501945061162660068684878b611515565b50505b8760058401116116845782835160d81c6466616c736581036116815760058501945061162660058684878b611515565b50505b61168c6114c9565b505061169886826114d7565b90505b94509492505050565b600060018401815b8682106116bb576116bb6114c9565b826116df576116ca87836114d7565b9150605d6116d9835160001a90565b14611742575b6116eb8783858761154b565b9250925082156117335761170581609885516040176114fb565b8352600101611715825160001a90565b605d81036117235750611742565b602c81036117315750611737565b505b8691505b6001820191506116ac565b50600101611752826038866114fb565b9350611762600182878787611515565b915094509492505050565b6000600184015b858110611783576117836114c9565b816117a75761179286826114d7565b9050607d6117a1825160001a90565b1461184b575b6117b186826114d7565b9050806117c0878385876118a7565b6117ca88826114d7565b9250603a6117d9845160001a90565b0361183d576117ed8860018501868861154b565b93509350831561183d57611814602086018303609861153285850360b889516080176114fb565b8452825160001a607d810361182b5750505061184b565b602c810361183b57505050611843565b505b50508590505b600101611774565b60010161185a826038866114fb565b9350611762600282878787611515565b6001667e0000007e03ff60306118838585015160001a90565b031c16611892576118926114c9565b60058214610e8b57610e8b600183018261186a565b505060008282106118ba576118ba6114c9565b50600181015b805160001a602281036118d35750611931565b605c81146118e457506001016118c0565b600182015160001a905060016a0510110400000000002001602283031c161561191057506002016118c0565b6075810361192c5761192360028361186a565b506006016118c0565b508290505b828110611940576119406114c9565b60010192915050565b805b600a603061195a835160001a90565b0310156119695760010161194b565b808214841615610f6357610f636114c9565b600083602d61198b825160001a90565b03611994576001015b600a60306119a3835160001a90565b03106119b1576119b16114c9565b805160001a600182019150603081146119d3576119d060008884611949565b91505b50602e6119e1825160001a90565b036119f8576119f560018760018401611949565b90505b805160658160001a60201703611a2757611a246001886001850162010001600e8660011a031a01611949565b91505b50611762600382878787611515565b60405190820190601f19601f850181165b8381015183820152810180611a475750508381526000846020830101528360408201016040529392505050565b8483611a36565b50919050565b805160609060028160071611611a7b578215811517611a7b576020811615611ab557603881901c63ffffffff169150611a7b565b604051915060208201603882901c63ffffffff165b8015611afc578082528051601881901c63ffffffff16611aec876018846114fb565b9092525060209190910190611aca565b50601f1983820381018060051c855282604052611b1b856038866114fb565b935083602017865260408110611b4e576020850192508085015b83518151855281526020909301928201808410611b3557505b50505050919050565b8051606090821581151715611b6c5750611baf565b80841c63ffffffff169150808616611bad5760d881901c63ffffffff16611b9a82871c63ffffffff16611a74565b925050611ba88285836114fb565b861783525b505b949350505050565b818015611c295760018114611c3f5760038114611c4e576020840184518101808214611c0f57805160001a60228253611bf68760d8601160f91b6114fb565b600052611c06828460008a61154b565b93509450808253505b83158183101715611c2257611c226114c9565b5050611106565b611c3860106078605887611b57565b9150611106565b611c38600860b8609887611b57565b611baf84611a81565b60606000610f638360036114c2565b805160609060801615611c80576000610f638360016114c2565b919050565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b80356001600160a01b0381168114611c8057600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611cfc57611cfc611cbd565b604052919050565b600067ffffffffffffffff821115611d1e57611d1e611cbd565b50601f01601f191660200190565b60008083601f840112611d3e57600080fd5b50813567ffffffffffffffff811115611d5657600080fd5b602083019150836020828501011115611d6e57600080fd5b9250929050565b60008060008060008060008060c0898b031215611d9157600080fd5b611d9a89611ca6565b9750611da860208a01611ca6565b9650604089013567ffffffffffffffff80821115611dc557600080fd5b818b0191508b601f830112611dd957600080fd5b8135611dec611de782611d04565b611cd3565b8181528d6020838601011115611e0157600080fd5b81602085016020830137600060208383010152809950505060608b0135915080821115611e2d57600080fd5b611e398c838d01611d2c565b909750955060808b0135915080821115611e5257600080fd5b50611e5f8b828c01611d2c565b999c989b50969995989497949560a00135949350505050565b600060208284031215611e8a57600080fd5b5051919050565b60005b83811015611eac578181015183820152602001611e94565b50506000910152565b600060208284031215611ec757600080fd5b815167ffffffffffffffff811115611ede57600080fd5b8201601f81018413611eef57600080fd5b8051611efd611de782611d04565b818152856020838501011115611f1257600080fd5b611f23826020830160208601611e91565b95945050505050565b838582376000848201750103bb4b636103132903232b83637bcb2b21030ba1d160551b81528451611f64816016840160208901611e91565b67616464726573732f60c01b601692909101918201528351611f8d81601e840160208801611e91565b01601e019695505050505050565b670143737b731b29d160c51b815260008251611fbe816008850160208701611e91565b602960f81b6008939091019283015250600901919050565b80518015158114611c8057600080fd5b600060408284031215611ff857600080fd5b6040516040810181811067ffffffffffffffff8211171561201b5761201b611cbd565b60405261202783611fd6565b815261203560208401611fd6565b60208201529392505050565b60008451612053818460208901611e91565b82018385823764173539b7b760d91b9301928352505060050192915050565b6000815180845261208a816020860160208601611e91565b601f01601f19169290920160200192915050565b602081526000610f636020830184612072565b6000602082840312156120c357600080fd5b610f6382611fd6565b6040815260006120df6040830184612072565b8281036020840152600f81526e2e6e756d4465706c6f796d656e747360881b60208201526040810191505092915050565b80820180821115610dfc57634e487b7160e01b600052601160045260246000fd5b652e2f6f75742f60d01b815260008351612152816006850160208801611e91565b602f60f81b6006918401918201528351612173816007840160208801611e91565b01600701949350505050565b634e487b7160e01b600052603260045260246000fd5b652e2f6f75742f60d01b8152600083516121b6816006850160208801611e91565b602f60f81b60069184019182015283516121d7816007840160208801611e91565b64173539b7b760d91b60079290910191820152600c01949350505050565b6040815260006122086040830185612072565b8281036020840152611f238185612072565b60608152600061222d6060830186612072565b828103602084015261223f8186612072565b905082810360408401526122538185612072565b9695505050505050565b6060815260006122706060830186612072565b82810360208401526122828186612072565b915050826040830152949350505050565b6060815260006122a66060830186612072565b82810360208401526122b88186612072565b9150508215156040830152949350505050565b6060815260006122de6060830186612072565b82810360208401526122f08186612072565b91505060018060a01b0383166040830152949350505050565b6000845161231b818460208901611e91565b84519083019061232f818360208901611e91565b8451910190612342818360208801611e91565b019594505050505056fe536b697070696e672061727469666163742067656e65726174696f6e20666f723a0b49c88cd3d1ba3c99fdd9a41ced95ec8629bda85e80b6c506c15db62ab8f761a2646970667358221220011a5bdc6e9005313a0ba02b20ef442323f3f1477fb185b0544cae3d5859547d64736f6c63430008170033) - │ │ └─ ← () - │ ├─ [1933] ArtifactFactory::fallback() - │ │ └─ ← 0x608060405234801561001057600080fd5b50600436106100365760003560e01c806331718a8f1461003b578063d92e82e414610050575b600080fd5b61004e610049366004611d75565b610081565b005b61006560008051602061236e83398151915281565b6040516001600160a01b03909116815260200160405180910390f35b6101e56101b8868660008051602061236e83398151915260001c6001600160a01b03166323cfba3360008051602061236e83398151915260001c6001600160a01b031663cedb75ef6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011c9190611e78565b6040518263ffffffff1660e01b815260040161013a91815260200190565b600060405180830381865afa158015610157573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261017f9190810190611eb5565b6101918c6001600160a01b0316610daf565b6040516020016101a49493929190611f2c565b604051602081830303815290604052610dd3565b6101c183610e02565b6040516020016101d19190611f9b565b604051602081830303815290604052610e46565b60408051639c8afddb60e01b81528151731ced95ec8629bda85e80b6c506c15db62ab8f76192639c8afddb92600480820193918290030181865afa158015610231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102559190611fe6565b5161031c5761031760405180606001604052806021815260200161234d6021913960405163028a249b60e41b81526001600160a01b038a166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906328a249b0906024016000604051808303816000875af11580156102d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102f89190810190611eb5565b604051806040016040528060018152602001600560f91b815250610e8f565b610da5565b600060008051602061236e83398151915260001c6001600160a01b031663e26d0fb860008051602061236e83398151915260001c6001600160a01b031663cedb75ef6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561038d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b19190611e78565b6040518263ffffffff1660e01b81526004016103cf91815260200190565b600060405180830381865afa1580156103ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104149190810190611eb5565b9050600081878760405160200161042d93929190612041565b60408051601f198184030181529082905263130d191f60e11b82529150606090600190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063261a323e9061047a90869060040161209e565b6020604051808303816000875af1158015610499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bd91906120b1565b156106b4576040516360f9bb1160e01b8152600090737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906104fc90879060040161209e565b600060405180830381865afa158015610519573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105419190810190611eb5565b6040516314a29a0f60e21b8152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063528a683c9061057b9084906004016120cc565b602060405180830381865afa158015610598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bc91906120b1565b156106b2576040516360f9bb1160e01b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063addde2b69082906360f9bb119061060090899060040161209e565b600060405180830381865afa15801561061d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106459190810190611eb5565b6040518263ffffffff1660e01b815260040161066191906120cc565b602060405180830381865afa15801561067e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a29190611e78565b91506106af600183612110565b91505b505b610714604051806040016040528060048152602001636172677360e01b81525088888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879493925050610edb9050565b506040805180820190915260058152646e6f6e636560d81b602082015261073d90839087610f6a565b506040805180820190915260098152686973466f756e64727960b81b602082015261076b9083906001610fa8565b506040805180820190915260088152673232b83637bcb2b960c11b60208201526107979083908e610fe6565b5060408051808201909152600781526618da185a5b925960ca1b60208201526107c290839046610f6a565b506040805180820190915260078152666164647265737360c81b60208201526107ed9083908d610fe6565b5060408051808201909152600b81526a313637b1b5a73ab6b132b960a91b602082015261081c90839043610f6a565b50604080518082019091526009815268074696d657374616d760bc1b602082015261084990839042610f6a565b506040805180820190915260148152730c6dedce8e4c2c6e882c4e6ded8eae8caa0c2e8d60631b60208201526108819083908c611024565b5060408051808201909152600e81526d6e756d4465706c6f796d656e747360901b60208201526108b390839083610f6a565b5060006108e2604051806040016040528060018152602001601d60f91b8152508c61106290919063ffffffff16565b905060008151600214610963578b61093e604051806040016040528060048152602001630b9cdbdb60e21b81525060405180604001604052806005815260200164173539b7b760d91b8152508f61110d9092919063ffffffff16565b60405160200161094f929190612131565b6040516020818303038152906040526109ba565b816000815181106109765761097661217f565b6020026020010151826001815181106109915761099161217f565b60200260200101516040516020016109aa929190612195565b6040516020818303038152906040525b6040516360f9bb1160e01b8152909150600090737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906109f790859060040161209e565b600060405180830381865afa158015610a14573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a3c9190810190611eb5565b90506000610a4982611230565b9050610aaa6040518060400160405280600381526020016261626960e81b815250610aa2610a9d604051806040016040528060058152602001641130b1349160d91b8152508561124990919063ffffffff16565b6112b0565b889190611024565b50610afd60405180604001604052806003815260200162185cdd60ea1b815250610aa2610a9d604051806040016040528060058152602001641130b9ba1160d91b8152508561124990919063ffffffff16565b50610b5660405180604001604052806006815260200165646576646f6360d01b815250610aa2610a9d60405180604001604052806008815260200167113232bb3237b19160c11b8152508561124990919063ffffffff16565b50610bb16040518060400160405280600781526020016675736572646f6360c81b815250610aa2610a9d60405180604001604052806009815260200168113ab9b2b93237b19160b91b8152508561124990919063ffffffff16565b50610c11604051806040016040528060088152602001676d6574616461746160c01b815250610aa2610a9d6040518060400160405280600d81526020016c113930bba6b2ba30b230ba309160991b8152508561124990919063ffffffff16565b50610c786040518060400160405280600d81526020016c1cdd1bdc9859d953185e5bdd5d609a1b815250610aa2610a9d6040518060400160405280600f81526020016e1139ba37b930b3b2a630bcb7baba1160891b8152508561124990919063ffffffff16565b50610cff6040518060400160405280600881526020016762797465636f646560c01b815250610aa2610a9d604051806040016040528060088152602001671137b13532b1ba1160c11b815250610cf96040518060400160405280600a81526020016911313cba32b1b7b2329160b11b8152508761124990919063ffffffff16565b90611249565b50610d906040518060400160405280601081526020016f6465706c6f79656442797465636f646560801b815250610aa2610a9d604051806040016040528060088152602001671137b13532b1ba1160c11b815250610cf960405180604001604052806012815260200171113232b83637bcb2b2213cba32b1b7b2329160711b8152508761124990919063ffffffff16565b9550610d9c86886112bf565b50505050505050505b5050505050505050565b6060610dba8261132e565b8051613078825260020160011990910190815292915050565b6060610dfc604051806040016040528060058152602001641b5b39326d60d81b8152508361139d565b92915050565b60606080604051019050602081016040526000815280600019835b928101926030600a8206018453600a900480610e1d575050819003601f19909101908152919050565b610e8b8282604051602401610e5c9291906121f5565b60408051601f198184030181529190526020810180516001600160e01b0316634b5c427760e01b1790526113e7565b5050565b610ed6838383604051602401610ea79392919061221a565b60408051601f198184030181529190526020810180516001600160e01b0316632ced7cef60e01b1790526113e7565b505050565b60405163f21d52c760e01b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f21d52c790610f199087908790879060040161221a565b6000604051808303816000875af1158015610f38573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f609190810190611eb5565b90505b9392505050565b60405163094f480160e11b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063129e900290610f199087908790879060040161225d565b60405163ac22e97160e01b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ac22e97190610f1990879087908790600401612293565b604051634b96303160e11b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063972c606290610f19908790879087906004016122cb565b6040516388da6d3560e01b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d906388da6d3590610f199087908790879060040161221a565b6060600061107084846113f3565b9050601f1960208201600183510160051b81018651838201526001845101845260005b8251606084528181146110d85760405182820380825286601f8201165b8b8501810151838201528701806110b05750600082820160200152603f018616810160405284525b8751602094909401930190508183106110935750505050809150825161110657602081019150600281510382525b5092915050565b606083518351835160208701965060208601955060208501945060206040510193508287018383116111df5760018382030160006020851061114e57508388205b601f851660200360031b89515b8b51818118831c6111c65783156111955783888e201461119557808a5260019c8d019c90990198848d1061118f57506111da565b5061115b565b60005b8b8101518b82015260200187811061119857509b87019b9886019887156111c657848d1061118f57506111da565b895260019b8c019b90980197838c1061115b575b505050505b84935060206040510194508781038585030192505b8088101561120f5787518452602097880197909301926111f4565b50506000818401908152602001604052601f19909201918252509392505050565b6040805160008082529181905290610f638360ff6114c2565b604080516000815290528151606090600716600203610dfc5781516020830120600061127485611c57565b805190915060051b5b80156112a757818101519550601f19018261129787611c66565b805190602001200361127d578593505b50505092915050565b60606000610f638360006114c2565b60405163e23cd19f60e01b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063e23cd19f906112f890859085906004016121f5565b600060405180830381600087803b15801561131257600080fd5b505af1158015611326573d6000803e3d6000fd5b505050505050565b60606040519050608081016040526f30313233343536373839616263646566600f526002810190506028815260208101600060288201528260601b925060005b808101820184821a600f81165160018301538060041c518253505060018101906012190161136e575050919050565b60608282604051806040016040528060048152602001631b5b306d60e01b8152506040516020016113d093929190612309565b604051602081830303815290604052905092915050565b6113f081611c85565b50565b6060825182518181116114ba57602085019450602084019350602060405101925084600182848801030160006020841061142c57508286205b601f841660200360031b87515b8951818118831c61148e57831561146c5783878c201461146c5760018b019a50848b10611466575061149d565b50611439565b858b03895299860199602090980197861561148e57848b10611466575061149d565b5060018a019950838a10611439575b505060408051601f198189030160051c8152602090970190525050505b505092915050565b6000611bb7565b63101827966000526004601cfd5b805b60016401000026006114ec835160001a90565b1c1615610dfc576001016114d9565b63ffffffff83113d3d3e63ffffffff821b191691901b1790565b6040516115378486036078611532601f19868903016058886114fb565b6114fb565b959095178552505050602082016040525090565b60008061155c8460186000516114fb565b61156687876114d7565b9150868210611575575061169b565b815160001a602281036115a7578261158f898585896118a7565b935061159f60048583868a611515565b94505061168c565b605b81036115c4576115bb888484886116a4565b9350935061168c565b607b81036115d8576115bb8884848861176d565b6703ff200000000000811c600116156115f7576115bb8884848861197b565b8760048401116116515782835160e01c6374727565810361162f5760048501945061162660058684878b611515565b9550505061168c565b636e756c6c810361164e5760048501945061162660068684878b611515565b50505b8760058401116116845782835160d81c6466616c736581036116815760058501945061162660058684878b611515565b50505b61168c6114c9565b505061169886826114d7565b90505b94509492505050565b600060018401815b8682106116bb576116bb6114c9565b826116df576116ca87836114d7565b9150605d6116d9835160001a90565b14611742575b6116eb8783858761154b565b9250925082156117335761170581609885516040176114fb565b8352600101611715825160001a90565b605d81036117235750611742565b602c81036117315750611737565b505b8691505b6001820191506116ac565b50600101611752826038866114fb565b9350611762600182878787611515565b915094509492505050565b6000600184015b858110611783576117836114c9565b816117a75761179286826114d7565b9050607d6117a1825160001a90565b1461184b575b6117b186826114d7565b9050806117c0878385876118a7565b6117ca88826114d7565b9250603a6117d9845160001a90565b0361183d576117ed8860018501868861154b565b93509350831561183d57611814602086018303609861153285850360b889516080176114fb565b8452825160001a607d810361182b5750505061184b565b602c810361183b57505050611843565b505b50508590505b600101611774565b60010161185a826038866114fb565b9350611762600282878787611515565b6001667e0000007e03ff60306118838585015160001a90565b031c16611892576118926114c9565b60058214610e8b57610e8b600183018261186a565b505060008282106118ba576118ba6114c9565b50600181015b805160001a602281036118d35750611931565b605c81146118e457506001016118c0565b600182015160001a905060016a0510110400000000002001602283031c161561191057506002016118c0565b6075810361192c5761192360028361186a565b506006016118c0565b508290505b828110611940576119406114c9565b60010192915050565b805b600a603061195a835160001a90565b0310156119695760010161194b565b808214841615610f6357610f636114c9565b600083602d61198b825160001a90565b03611994576001015b600a60306119a3835160001a90565b03106119b1576119b16114c9565b805160001a600182019150603081146119d3576119d060008884611949565b91505b50602e6119e1825160001a90565b036119f8576119f560018760018401611949565b90505b805160658160001a60201703611a2757611a246001886001850162010001600e8660011a031a01611949565b91505b50611762600382878787611515565b60405190820190601f19601f850181165b8381015183820152810180611a475750508381526000846020830101528360408201016040529392505050565b8483611a36565b50919050565b805160609060028160071611611a7b578215811517611a7b576020811615611ab557603881901c63ffffffff169150611a7b565b604051915060208201603882901c63ffffffff165b8015611afc578082528051601881901c63ffffffff16611aec876018846114fb565b9092525060209190910190611aca565b50601f1983820381018060051c855282604052611b1b856038866114fb565b935083602017865260408110611b4e576020850192508085015b83518151855281526020909301928201808410611b3557505b50505050919050565b8051606090821581151715611b6c5750611baf565b80841c63ffffffff169150808616611bad5760d881901c63ffffffff16611b9a82871c63ffffffff16611a74565b925050611ba88285836114fb565b861783525b505b949350505050565b818015611c295760018114611c3f5760038114611c4e576020840184518101808214611c0f57805160001a60228253611bf68760d8601160f91b6114fb565b600052611c06828460008a61154b565b93509450808253505b83158183101715611c2257611c226114c9565b5050611106565b611c3860106078605887611b57565b9150611106565b611c38600860b8609887611b57565b611baf84611a81565b60606000610f638360036114c2565b805160609060801615611c80576000610f638360016114c2565b919050565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b80356001600160a01b0381168114611c8057600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611cfc57611cfc611cbd565b604052919050565b600067ffffffffffffffff821115611d1e57611d1e611cbd565b50601f01601f191660200190565b60008083601f840112611d3e57600080fd5b50813567ffffffffffffffff811115611d5657600080fd5b602083019150836020828501011115611d6e57600080fd5b9250929050565b60008060008060008060008060c0898b031215611d9157600080fd5b611d9a89611ca6565b9750611da860208a01611ca6565b9650604089013567ffffffffffffffff80821115611dc557600080fd5b818b0191508b601f830112611dd957600080fd5b8135611dec611de782611d04565b611cd3565b8181528d6020838601011115611e0157600080fd5b81602085016020830137600060208383010152809950505060608b0135915080821115611e2d57600080fd5b611e398c838d01611d2c565b909750955060808b0135915080821115611e5257600080fd5b50611e5f8b828c01611d2c565b999c989b50969995989497949560a00135949350505050565b600060208284031215611e8a57600080fd5b5051919050565b60005b83811015611eac578181015183820152602001611e94565b50506000910152565b600060208284031215611ec757600080fd5b815167ffffffffffffffff811115611ede57600080fd5b8201601f81018413611eef57600080fd5b8051611efd611de782611d04565b818152856020838501011115611f1257600080fd5b611f23826020830160208601611e91565b95945050505050565b838582376000848201750103bb4b636103132903232b83637bcb2b21030ba1d160551b81528451611f64816016840160208901611e91565b67616464726573732f60c01b601692909101918201528351611f8d81601e840160208801611e91565b01601e019695505050505050565b670143737b731b29d160c51b815260008251611fbe816008850160208701611e91565b602960f81b6008939091019283015250600901919050565b80518015158114611c8057600080fd5b600060408284031215611ff857600080fd5b6040516040810181811067ffffffffffffffff8211171561201b5761201b611cbd565b60405261202783611fd6565b815261203560208401611fd6565b60208201529392505050565b60008451612053818460208901611e91565b82018385823764173539b7b760d91b9301928352505060050192915050565b6000815180845261208a816020860160208601611e91565b601f01601f19169290920160200192915050565b602081526000610f636020830184612072565b6000602082840312156120c357600080fd5b610f6382611fd6565b6040815260006120df6040830184612072565b8281036020840152600f81526e2e6e756d4465706c6f796d656e747360881b60208201526040810191505092915050565b80820180821115610dfc57634e487b7160e01b600052601160045260246000fd5b652e2f6f75742f60d01b815260008351612152816006850160208801611e91565b602f60f81b6006918401918201528351612173816007840160208801611e91565b01600701949350505050565b634e487b7160e01b600052603260045260246000fd5b652e2f6f75742f60d01b8152600083516121b6816006850160208801611e91565b602f60f81b60069184019182015283516121d7816007840160208801611e91565b64173539b7b760d91b60079290910191820152600c01949350505050565b6040815260006122086040830185612072565b8281036020840152611f238185612072565b60608152600061222d6060830186612072565b828103602084015261223f8186612072565b905082810360408401526122538185612072565b9695505050505050565b6060815260006122706060830186612072565b82810360208401526122828186612072565b915050826040830152949350505050565b6060815260006122a66060830186612072565b82810360208401526122b88186612072565b9150508215156040830152949350505050565b6060815260006122de6060830186612072565b82810360208401526122f08186612072565b91505060018060a01b0383166040830152949350505050565b6000845161231b818460208901611e91565b84519083019061232f818360208901611e91565b8451910190612342818360208801611e91565b019594505050505056fe536b697070696e672061727469666163742067656e65726174696f6e20666f723a0b49c88cd3d1ba3c99fdd9a41ced95ec8629bda85e80b6c506c15db62ab8f761a2646970667358221220011a5bdc6e9005313a0ba02b20ef442323f3f1477fb185b0544cae3d5859547d64736f6c63430008170033 - │ ├─ [0] VM::etch(ArtifactFactory: [0xD43d5C72f803D06869Ba1ECBf5E151Ff59353E16], 0x608060405234801561001057600080fd5b50600436106100365760003560e01c806331718a8f1461003b578063d92e82e414610050575b600080fd5b61004e610049366004611d75565b610081565b005b61006560008051602061236e83398151915281565b6040516001600160a01b03909116815260200160405180910390f35b6101e56101b8868660008051602061236e83398151915260001c6001600160a01b03166323cfba3360008051602061236e83398151915260001c6001600160a01b031663cedb75ef6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011c9190611e78565b6040518263ffffffff1660e01b815260040161013a91815260200190565b600060405180830381865afa158015610157573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261017f9190810190611eb5565b6101918c6001600160a01b0316610daf565b6040516020016101a49493929190611f2c565b604051602081830303815290604052610dd3565b6101c183610e02565b6040516020016101d19190611f9b565b604051602081830303815290604052610e46565b60408051639c8afddb60e01b81528151731ced95ec8629bda85e80b6c506c15db62ab8f76192639c8afddb92600480820193918290030181865afa158015610231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102559190611fe6565b5161031c5761031760405180606001604052806021815260200161234d6021913960405163028a249b60e41b81526001600160a01b038a166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906328a249b0906024016000604051808303816000875af11580156102d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102f89190810190611eb5565b604051806040016040528060018152602001600560f91b815250610e8f565b610da5565b600060008051602061236e83398151915260001c6001600160a01b031663e26d0fb860008051602061236e83398151915260001c6001600160a01b031663cedb75ef6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561038d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b19190611e78565b6040518263ffffffff1660e01b81526004016103cf91815260200190565b600060405180830381865afa1580156103ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104149190810190611eb5565b9050600081878760405160200161042d93929190612041565b60408051601f198184030181529082905263130d191f60e11b82529150606090600190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063261a323e9061047a90869060040161209e565b6020604051808303816000875af1158015610499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bd91906120b1565b156106b4576040516360f9bb1160e01b8152600090737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906104fc90879060040161209e565b600060405180830381865afa158015610519573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105419190810190611eb5565b6040516314a29a0f60e21b8152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063528a683c9061057b9084906004016120cc565b602060405180830381865afa158015610598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bc91906120b1565b156106b2576040516360f9bb1160e01b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063addde2b69082906360f9bb119061060090899060040161209e565b600060405180830381865afa15801561061d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106459190810190611eb5565b6040518263ffffffff1660e01b815260040161066191906120cc565b602060405180830381865afa15801561067e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a29190611e78565b91506106af600183612110565b91505b505b610714604051806040016040528060048152602001636172677360e01b81525088888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879493925050610edb9050565b506040805180820190915260058152646e6f6e636560d81b602082015261073d90839087610f6a565b506040805180820190915260098152686973466f756e64727960b81b602082015261076b9083906001610fa8565b506040805180820190915260088152673232b83637bcb2b960c11b60208201526107979083908e610fe6565b5060408051808201909152600781526618da185a5b925960ca1b60208201526107c290839046610f6a565b506040805180820190915260078152666164647265737360c81b60208201526107ed9083908d610fe6565b5060408051808201909152600b81526a313637b1b5a73ab6b132b960a91b602082015261081c90839043610f6a565b50604080518082019091526009815268074696d657374616d760bc1b602082015261084990839042610f6a565b506040805180820190915260148152730c6dedce8e4c2c6e882c4e6ded8eae8caa0c2e8d60631b60208201526108819083908c611024565b5060408051808201909152600e81526d6e756d4465706c6f796d656e747360901b60208201526108b390839083610f6a565b5060006108e2604051806040016040528060018152602001601d60f91b8152508c61106290919063ffffffff16565b905060008151600214610963578b61093e604051806040016040528060048152602001630b9cdbdb60e21b81525060405180604001604052806005815260200164173539b7b760d91b8152508f61110d9092919063ffffffff16565b60405160200161094f929190612131565b6040516020818303038152906040526109ba565b816000815181106109765761097661217f565b6020026020010151826001815181106109915761099161217f565b60200260200101516040516020016109aa929190612195565b6040516020818303038152906040525b6040516360f9bb1160e01b8152909150600090737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906109f790859060040161209e565b600060405180830381865afa158015610a14573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a3c9190810190611eb5565b90506000610a4982611230565b9050610aaa6040518060400160405280600381526020016261626960e81b815250610aa2610a9d604051806040016040528060058152602001641130b1349160d91b8152508561124990919063ffffffff16565b6112b0565b889190611024565b50610afd60405180604001604052806003815260200162185cdd60ea1b815250610aa2610a9d604051806040016040528060058152602001641130b9ba1160d91b8152508561124990919063ffffffff16565b50610b5660405180604001604052806006815260200165646576646f6360d01b815250610aa2610a9d60405180604001604052806008815260200167113232bb3237b19160c11b8152508561124990919063ffffffff16565b50610bb16040518060400160405280600781526020016675736572646f6360c81b815250610aa2610a9d60405180604001604052806009815260200168113ab9b2b93237b19160b91b8152508561124990919063ffffffff16565b50610c11604051806040016040528060088152602001676d6574616461746160c01b815250610aa2610a9d6040518060400160405280600d81526020016c113930bba6b2ba30b230ba309160991b8152508561124990919063ffffffff16565b50610c786040518060400160405280600d81526020016c1cdd1bdc9859d953185e5bdd5d609a1b815250610aa2610a9d6040518060400160405280600f81526020016e1139ba37b930b3b2a630bcb7baba1160891b8152508561124990919063ffffffff16565b50610cff6040518060400160405280600881526020016762797465636f646560c01b815250610aa2610a9d604051806040016040528060088152602001671137b13532b1ba1160c11b815250610cf96040518060400160405280600a81526020016911313cba32b1b7b2329160b11b8152508761124990919063ffffffff16565b90611249565b50610d906040518060400160405280601081526020016f6465706c6f79656442797465636f646560801b815250610aa2610a9d604051806040016040528060088152602001671137b13532b1ba1160c11b815250610cf960405180604001604052806012815260200171113232b83637bcb2b2213cba32b1b7b2329160711b8152508761124990919063ffffffff16565b9550610d9c86886112bf565b50505050505050505b5050505050505050565b6060610dba8261132e565b8051613078825260020160011990910190815292915050565b6060610dfc604051806040016040528060058152602001641b5b39326d60d81b8152508361139d565b92915050565b60606080604051019050602081016040526000815280600019835b928101926030600a8206018453600a900480610e1d575050819003601f19909101908152919050565b610e8b8282604051602401610e5c9291906121f5565b60408051601f198184030181529190526020810180516001600160e01b0316634b5c427760e01b1790526113e7565b5050565b610ed6838383604051602401610ea79392919061221a565b60408051601f198184030181529190526020810180516001600160e01b0316632ced7cef60e01b1790526113e7565b505050565b60405163f21d52c760e01b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f21d52c790610f199087908790879060040161221a565b6000604051808303816000875af1158015610f38573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f609190810190611eb5565b90505b9392505050565b60405163094f480160e11b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063129e900290610f199087908790879060040161225d565b60405163ac22e97160e01b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ac22e97190610f1990879087908790600401612293565b604051634b96303160e11b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063972c606290610f19908790879087906004016122cb565b6040516388da6d3560e01b8152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d906388da6d3590610f199087908790879060040161221a565b6060600061107084846113f3565b9050601f1960208201600183510160051b81018651838201526001845101845260005b8251606084528181146110d85760405182820380825286601f8201165b8b8501810151838201528701806110b05750600082820160200152603f018616810160405284525b8751602094909401930190508183106110935750505050809150825161110657602081019150600281510382525b5092915050565b606083518351835160208701965060208601955060208501945060206040510193508287018383116111df5760018382030160006020851061114e57508388205b601f851660200360031b89515b8b51818118831c6111c65783156111955783888e201461119557808a5260019c8d019c90990198848d1061118f57506111da565b5061115b565b60005b8b8101518b82015260200187811061119857509b87019b9886019887156111c657848d1061118f57506111da565b895260019b8c019b90980197838c1061115b575b505050505b84935060206040510194508781038585030192505b8088101561120f5787518452602097880197909301926111f4565b50506000818401908152602001604052601f19909201918252509392505050565b6040805160008082529181905290610f638360ff6114c2565b604080516000815290528151606090600716600203610dfc5781516020830120600061127485611c57565b805190915060051b5b80156112a757818101519550601f19018261129787611c66565b805190602001200361127d578593505b50505092915050565b60606000610f638360006114c2565b60405163e23cd19f60e01b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063e23cd19f906112f890859085906004016121f5565b600060405180830381600087803b15801561131257600080fd5b505af1158015611326573d6000803e3d6000fd5b505050505050565b60606040519050608081016040526f30313233343536373839616263646566600f526002810190506028815260208101600060288201528260601b925060005b808101820184821a600f81165160018301538060041c518253505060018101906012190161136e575050919050565b60608282604051806040016040528060048152602001631b5b306d60e01b8152506040516020016113d093929190612309565b604051602081830303815290604052905092915050565b6113f081611c85565b50565b6060825182518181116114ba57602085019450602084019350602060405101925084600182848801030160006020841061142c57508286205b601f841660200360031b87515b8951818118831c61148e57831561146c5783878c201461146c5760018b019a50848b10611466575061149d565b50611439565b858b03895299860199602090980197861561148e57848b10611466575061149d565b5060018a019950838a10611439575b505060408051601f198189030160051c8152602090970190525050505b505092915050565b6000611bb7565b63101827966000526004601cfd5b805b60016401000026006114ec835160001a90565b1c1615610dfc576001016114d9565b63ffffffff83113d3d3e63ffffffff821b191691901b1790565b6040516115378486036078611532601f19868903016058886114fb565b6114fb565b959095178552505050602082016040525090565b60008061155c8460186000516114fb565b61156687876114d7565b9150868210611575575061169b565b815160001a602281036115a7578261158f898585896118a7565b935061159f60048583868a611515565b94505061168c565b605b81036115c4576115bb888484886116a4565b9350935061168c565b607b81036115d8576115bb8884848861176d565b6703ff200000000000811c600116156115f7576115bb8884848861197b565b8760048401116116515782835160e01c6374727565810361162f5760048501945061162660058684878b611515565b9550505061168c565b636e756c6c810361164e5760048501945061162660068684878b611515565b50505b8760058401116116845782835160d81c6466616c736581036116815760058501945061162660058684878b611515565b50505b61168c6114c9565b505061169886826114d7565b90505b94509492505050565b600060018401815b8682106116bb576116bb6114c9565b826116df576116ca87836114d7565b9150605d6116d9835160001a90565b14611742575b6116eb8783858761154b565b9250925082156117335761170581609885516040176114fb565b8352600101611715825160001a90565b605d81036117235750611742565b602c81036117315750611737565b505b8691505b6001820191506116ac565b50600101611752826038866114fb565b9350611762600182878787611515565b915094509492505050565b6000600184015b858110611783576117836114c9565b816117a75761179286826114d7565b9050607d6117a1825160001a90565b1461184b575b6117b186826114d7565b9050806117c0878385876118a7565b6117ca88826114d7565b9250603a6117d9845160001a90565b0361183d576117ed8860018501868861154b565b93509350831561183d57611814602086018303609861153285850360b889516080176114fb565b8452825160001a607d810361182b5750505061184b565b602c810361183b57505050611843565b505b50508590505b600101611774565b60010161185a826038866114fb565b9350611762600282878787611515565b6001667e0000007e03ff60306118838585015160001a90565b031c16611892576118926114c9565b60058214610e8b57610e8b600183018261186a565b505060008282106118ba576118ba6114c9565b50600181015b805160001a602281036118d35750611931565b605c81146118e457506001016118c0565b600182015160001a905060016a0510110400000000002001602283031c161561191057506002016118c0565b6075810361192c5761192360028361186a565b506006016118c0565b508290505b828110611940576119406114c9565b60010192915050565b805b600a603061195a835160001a90565b0310156119695760010161194b565b808214841615610f6357610f636114c9565b600083602d61198b825160001a90565b03611994576001015b600a60306119a3835160001a90565b03106119b1576119b16114c9565b805160001a600182019150603081146119d3576119d060008884611949565b91505b50602e6119e1825160001a90565b036119f8576119f560018760018401611949565b90505b805160658160001a60201703611a2757611a246001886001850162010001600e8660011a031a01611949565b91505b50611762600382878787611515565b60405190820190601f19601f850181165b8381015183820152810180611a475750508381526000846020830101528360408201016040529392505050565b8483611a36565b50919050565b805160609060028160071611611a7b578215811517611a7b576020811615611ab557603881901c63ffffffff169150611a7b565b604051915060208201603882901c63ffffffff165b8015611afc578082528051601881901c63ffffffff16611aec876018846114fb565b9092525060209190910190611aca565b50601f1983820381018060051c855282604052611b1b856038866114fb565b935083602017865260408110611b4e576020850192508085015b83518151855281526020909301928201808410611b3557505b50505050919050565b8051606090821581151715611b6c5750611baf565b80841c63ffffffff169150808616611bad5760d881901c63ffffffff16611b9a82871c63ffffffff16611a74565b925050611ba88285836114fb565b861783525b505b949350505050565b818015611c295760018114611c3f5760038114611c4e576020840184518101808214611c0f57805160001a60228253611bf68760d8601160f91b6114fb565b600052611c06828460008a61154b565b93509450808253505b83158183101715611c2257611c226114c9565b5050611106565b611c3860106078605887611b57565b9150611106565b611c38600860b8609887611b57565b611baf84611a81565b60606000610f638360036114c2565b805160609060801615611c80576000610f638360016114c2565b919050565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b80356001600160a01b0381168114611c8057600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611cfc57611cfc611cbd565b604052919050565b600067ffffffffffffffff821115611d1e57611d1e611cbd565b50601f01601f191660200190565b60008083601f840112611d3e57600080fd5b50813567ffffffffffffffff811115611d5657600080fd5b602083019150836020828501011115611d6e57600080fd5b9250929050565b60008060008060008060008060c0898b031215611d9157600080fd5b611d9a89611ca6565b9750611da860208a01611ca6565b9650604089013567ffffffffffffffff80821115611dc557600080fd5b818b0191508b601f830112611dd957600080fd5b8135611dec611de782611d04565b611cd3565b8181528d6020838601011115611e0157600080fd5b81602085016020830137600060208383010152809950505060608b0135915080821115611e2d57600080fd5b611e398c838d01611d2c565b909750955060808b0135915080821115611e5257600080fd5b50611e5f8b828c01611d2c565b999c989b50969995989497949560a00135949350505050565b600060208284031215611e8a57600080fd5b5051919050565b60005b83811015611eac578181015183820152602001611e94565b50506000910152565b600060208284031215611ec757600080fd5b815167ffffffffffffffff811115611ede57600080fd5b8201601f81018413611eef57600080fd5b8051611efd611de782611d04565b818152856020838501011115611f1257600080fd5b611f23826020830160208601611e91565b95945050505050565b838582376000848201750103bb4b636103132903232b83637bcb2b21030ba1d160551b81528451611f64816016840160208901611e91565b67616464726573732f60c01b601692909101918201528351611f8d81601e840160208801611e91565b01601e019695505050505050565b670143737b731b29d160c51b815260008251611fbe816008850160208701611e91565b602960f81b6008939091019283015250600901919050565b80518015158114611c8057600080fd5b600060408284031215611ff857600080fd5b6040516040810181811067ffffffffffffffff8211171561201b5761201b611cbd565b60405261202783611fd6565b815261203560208401611fd6565b60208201529392505050565b60008451612053818460208901611e91565b82018385823764173539b7b760d91b9301928352505060050192915050565b6000815180845261208a816020860160208601611e91565b601f01601f19169290920160200192915050565b602081526000610f636020830184612072565b6000602082840312156120c357600080fd5b610f6382611fd6565b6040815260006120df6040830184612072565b8281036020840152600f81526e2e6e756d4465706c6f796d656e747360881b60208201526040810191505092915050565b80820180821115610dfc57634e487b7160e01b600052601160045260246000fd5b652e2f6f75742f60d01b815260008351612152816006850160208801611e91565b602f60f81b6006918401918201528351612173816007840160208801611e91565b01600701949350505050565b634e487b7160e01b600052603260045260246000fd5b652e2f6f75742f60d01b8152600083516121b6816006850160208801611e91565b602f60f81b60069184019182015283516121d7816007840160208801611e91565b64173539b7b760d91b60079290910191820152600c01949350505050565b6040815260006122086040830185612072565b8281036020840152611f238185612072565b60608152600061222d6060830186612072565b828103602084015261223f8186612072565b905082810360408401526122538185612072565b9695505050505050565b6060815260006122706060830186612072565b82810360208401526122828186612072565b915050826040830152949350505050565b6060815260006122a66060830186612072565b82810360208401526122b88186612072565b9150508215156040830152949350505050565b6060815260006122de6060830186612072565b82810360208401526122f08186612072565b91505060018060a01b0383166040830152949350505050565b6000845161231b818460208901611e91565b84519083019061232f818360208901611e91565b8451910190612342818360208801611e91565b019594505050505056fe536b697070696e672061727469666163742067656e65726174696f6e20666f723a0b49c88cd3d1ba3c99fdd9a41ced95ec8629bda85e80b6c506c15db62ab8f761a2646970667358221220011a5bdc6e9005313a0ba02b20ef442323f3f1477fb185b0544cae3d5859547d64736f6c63430008170033) - │ │ └─ ← () - │ ├─ [0] VM::label(ArtifactFactory: [0xD43d5C72f803D06869Ba1ECBf5E151Ff59353E16], "ArtifactFactory") - │ │ └─ ← () - │ ├─ [1127] GeneralConfig::getCurrentNetwork() [staticcall] - │ │ └─ ← 0x054c6f63616c0000000000000000000000000000000000000000000000000000 - │ ├─ [1127] GeneralConfig::getCurrentNetwork() [staticcall] - │ │ └─ ← 0x054c6f63616c0000000000000000000000000000000000000000000000000000 - │ ├─ [1127] GeneralConfig::getCurrentNetwork() [staticcall] - │ │ └─ ← 0x054c6f63616c0000000000000000000000000000000000000000000000000000 - │ ├─ [0] VM::toString(1) [staticcall] - │ │ └─ ← "1" - │ ├─ [0] VM::addr(89338892785005572287897341235069628097861401345577076384027374511660850657461 [8.933e76]) [staticcall] - │ │ └─ ← operator-1: [0x7083C6a0F61B3FdC6a8f4Bb573F5097b485Cbb95] - │ ├─ [0] VM::label(operator-1: [0x7083C6a0F61B3FdC6a8f4Bb573F5097b485Cbb95], "operator-1") - │ │ └─ ← () - │ ├─ [0] VM::toString(1) [staticcall] - │ │ └─ ← "1" - │ ├─ [0] VM::addr(42130495768838953123449699907647043401609189235260698547160306600511619299692 [4.213e76]) [staticcall] - │ │ └─ ← governor-1: [0xbF91bFD887138C482101Bff998F4A96D41C5c430] - │ ├─ [0] VM::label(governor-1: [0xbF91bFD887138C482101Bff998F4A96D41C5c430], "governor-1") - │ │ └─ ← () - │ ├─ [0] VM::toString(2) [staticcall] - │ │ └─ ← "2" - │ ├─ [0] VM::addr(94291935571555911197469540623796976523702620179200967527175130350870576063980 [9.429e76]) [staticcall] - │ │ └─ ← operator-2: [0x10e09AaCfb9408a6da536d258d3d64718ab56E4D] - │ ├─ [0] VM::label(operator-2: [0x10e09AaCfb9408a6da536d258d3d64718ab56E4D], "operator-2") - │ │ └─ ← () - │ ├─ [0] VM::toString(2) [staticcall] - │ │ └─ ← "2" - │ ├─ [0] VM::addr(403917326894831356924335699703306599620251154684925206401321994183394999420 [4.039e74]) [staticcall] - │ │ └─ ← governor-2: [0x8856475Dd525166b6654eDd18e0011e592459a8E] - │ ├─ [0] VM::label(governor-2: [0x8856475Dd525166b6654eDd18e0011e592459a8E], "governor-2") - │ │ └─ ← () - │ ├─ [0] VM::toString(3) [staticcall] - │ │ └─ ← "3" - │ ├─ [0] VM::addr(66105842787854347706174987450235791373805460984806302077048451364001077277532 [6.61e76]) [staticcall] - │ │ └─ ← operator-3: [0x698beC9a526055cD092E9E15aCcCfC542b63f92D] - │ ├─ [0] VM::label(operator-3: [0x698beC9a526055cD092E9E15aCcCfC542b63f92D], "operator-3") - │ │ └─ ← () - │ ├─ [0] VM::toString(3) [staticcall] - │ │ └─ ← "3" - │ ├─ [0] VM::addr(56339438849551946521399288704068023525847000585964828640418712388045726980876 [5.633e76]) [staticcall] - │ │ └─ ← governor-3: [0xC966b8836E01dB8f720f0A169dA0252767b87454] - │ ├─ [0] VM::label(governor-3: [0xC966b8836E01dB8f720f0A169dA0252767b87454], "governor-3") - │ │ └─ ← () - │ ├─ [0] VM::toString(4) [staticcall] - │ │ └─ ← "4" - │ ├─ [0] VM::addr(62139592644894956050512135403780103102340499689216530470315027870165852992480 [6.213e76]) [staticcall] - │ │ └─ ← operator-4: [0x0D8274A6B3CDDB84e8FD4F8c93B4cfA26dBCb45D] - │ ├─ [0] VM::label(operator-4: [0x0D8274A6B3CDDB84e8FD4F8c93B4cfA26dBCb45D], "operator-4") - │ │ └─ ← () - │ ├─ [0] VM::toString(4) [staticcall] - │ │ └─ ← "4" - │ ├─ [0] VM::addr(27604694287983472608131360737372851209735677770180426011553376648209901464447 [2.76e76]) [staticcall] - │ │ └─ ← governor-4: [0x713886700F9F4b7dF033BD1615177684cEDCeee4] - │ ├─ [0] VM::label(governor-4: [0x713886700F9F4b7dF033BD1615177684cEDCeee4], "governor-4") - │ │ └─ ← () - │ ├─ [0] VM::toString(5) [staticcall] - │ │ └─ ← "5" - │ ├─ [0] VM::addr(26730799742766852067733297249950721399537296601340543341730795111646130922429 [2.673e76]) [staticcall] - │ │ └─ ← operator-5: [0xaf627C77b0b0ed13882b0FF7B10af7a610035A41] - │ ├─ [0] VM::label(operator-5: [0xaf627C77b0b0ed13882b0FF7B10af7a610035A41], "operator-5") - │ │ └─ ← () - │ ├─ [0] VM::toString(5) [staticcall] - │ │ └─ ← "5" - │ ├─ [0] VM::addr(104821485913365662130142988392886912637914151491318229463022685936103607433561 [1.048e77]) [staticcall] - │ │ └─ ← governor-5: [0xa131e33Ef51a90640F54291645BdcEE9De3D1c11] - │ ├─ [0] VM::label(governor-5: [0xa131e33Ef51a90640F54291645BdcEE9De3D1c11], "governor-5") - │ │ └─ ← () - │ ├─ [0] VM::toString(6) [staticcall] - │ │ └─ ← "6" - │ ├─ [0] VM::addr(113233486732718915359374711713006098219786402783232076428732164185014040351031 [1.132e77]) [staticcall] - │ │ └─ ← operator-6: [0xcCfCA9C1C0b543d21DC71C43dce7B174A7015Fb8] - │ ├─ [0] VM::label(operator-6: [0xcCfCA9C1C0b543d21DC71C43dce7B174A7015Fb8], "operator-6") - │ │ └─ ← () - │ ├─ [0] VM::toString(6) [staticcall] - │ │ └─ ← "6" - │ ├─ [0] VM::addr(6590094224521758730518853749126478106862199057651219259336272091588099021235 [6.59e75]) [staticcall] - │ │ └─ ← governor-6: [0x30949311D69Fa2eAE2b805A9905eb6D72a5B38a8] - │ ├─ [0] VM::label(governor-6: [0x30949311D69Fa2eAE2b805A9905eb6D72a5B38a8], "governor-6") - │ │ └─ ← () - │ ├─ [0] VM::addr(91510552187238886959033578665964256892121014792639911859038233360780899104770 [9.151e76]) [staticcall] - │ │ └─ ← governance-admin: [0x84850a90002c2edf9BFF8D3C296e9C9C0427CD9e] - │ ├─ [0] VM::label(governance-admin: [0x84850a90002c2edf9BFF8D3C296e9C9C0427CD9e], "governance-admin") - │ │ └─ ← () - │ ├─ [0] VM::addr(32023155812407028061452097301509641536118192107878305823158825758004472210926 [3.202e76]) [staticcall] - │ │ └─ ← validator-set-contract: [0x13492C1CaA270F0A24342015A049518CF093dD40] - │ ├─ [0] VM::label(validator-set-contract: [0x13492C1CaA270F0A24342015A049518CF093dD40], "validator-set-contract") - │ │ └─ ← () - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x0e526f6e696e4761746577617956330000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496] - │ ├─ [7326] GeneralConfig::getAddressFromCurrentNetwork(0x0c42726964676552657761726400000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)BridgeReward[0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351]: [0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351] - │ ├─ [7326] GeneralConfig::getAddressFromCurrentNetwork(0x0b427269646765536c6173680000000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)BridgeSlash[0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809]: [0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x0e427269646765547261636b696e670000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)BridgeTracking[0x50EEf481cae4250d252Ae577A09bF514f224C6C4]: [0x50EEf481cae4250d252Ae577A09bF514f224C6C4] - │ ├─ [0] VM::addr(67501766086945423188359301496192992873575530264346267663568933074015626216763 [6.75e76]) [staticcall] - │ │ └─ ← proxy-admin: [0x399251E522341ef9791CfdC520caF8a89563ee90] - │ ├─ [0] VM::label(proxy-admin: [0x399251E522341ef9791CfdC520caF8a89563ee90], "proxy-admin") - │ │ └─ ← () - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x12526f6e696e4272696467654d616e6167657200000000000000000000000000) [staticcall] - │ │ └─ ← (31337)RoninBridgeManager[0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3]: [0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x0e427269646765547261636b696e670000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)BridgeTracking[0x50EEf481cae4250d252Ae577A09bF514f224C6C4]: [0x50EEf481cae4250d252Ae577A09bF514f224C6C4] - │ ├─ [7326] GeneralConfig::getAddressFromCurrentNetwork(0x0b427269646765536c6173680000000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)BridgeSlash[0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809]: [0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x12526f6e696e4272696467654d616e6167657200000000000000000000000000) [staticcall] - │ │ └─ ← (31337)RoninBridgeManager[0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3]: [0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x0e427269646765547261636b696e670000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)BridgeTracking[0x50EEf481cae4250d252Ae577A09bF514f224C6C4]: [0x50EEf481cae4250d252Ae577A09bF514f224C6C4] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x0e526f6e696e4761746577617956330000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x0e526f6e696e4761746577617956330000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496] - │ ├─ [7326] GeneralConfig::getAddressFromCurrentNetwork(0x0b427269646765536c6173680000000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)BridgeSlash[0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809]: [0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x124d61696e636861696e47617465776179563300000000000000000000000000) [staticcall] - │ │ └─ ← (31337)MainchainGatewayV3[0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB]: [0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x124d61696e636861696e47617465776179563300000000000000000000000000) [staticcall] - │ │ └─ ← (31337)MainchainGatewayV3[0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB]: [0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB] - │ ├─ [7336] GeneralConfig::getAddressFromCurrentNetwork(0x0457455448000000000000000000000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)WETH[0x978e3286EB805934215a88694d80b09aDed68D90]: [0x978e3286EB805934215a88694d80b09aDed68D90] - │ ├─ [7336] GeneralConfig::getAddressFromCurrentNetwork(0x0455534443000000000000000000000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)USDC[0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6]: [0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6] - │ ├─ [7336] GeneralConfig::getAddressFromCurrentNetwork(0x0457455448000000000000000000000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)WETH[0x978e3286EB805934215a88694d80b09aDed68D90]: [0x978e3286EB805934215a88694d80b09aDed68D90] - │ ├─ [7336] GeneralConfig::getAddressFromCurrentNetwork(0x0455534443000000000000000000000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)USDC[0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6]: [0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6] - │ ├─ [3519290] GeneralConfig::setRawSharedArguments(0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000013492c1caa270f0a24342015a049518cf093dd40000000000000000000000000bb2180ebd78ce97360503434ed37fcf4a1df61c300000000000000000000000050eef481cae4250d252ae577a09bf514f224c6c400000000000000000000000084850a90002c2edf9bff8d3c296e9c9c0427cd9e000000000000000000000000a8452ec99ce0c64f20701db7dd3abdb607c0049600000000000000000000000013492c1caa270f0a24342015a049518cf093dd400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bb2180ebd78ce97360503434ed37fcf4a1df61c300000000000000000000000050eef481cae4250d252ae577a09bf514f224c6c4000000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d7080900000000000000000000000013492c1caa270f0a24342015a049518cf093dd4000000000000000000000000084850a90002c2edf9bff8d3c296e9c9c0427cd9e000000000000000000000000000000000000000000000000000000000000138800000000000000000000000000000000000000000000000000000000000012800000000000000000000000000000000000000000000000000000000000001340000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000015800000000000000000000000000000000000000000000000000000000000001640000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d21060559c9beb54fc07afd6151adf6cfcddcaeb0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d21060559c9beb54fc07afd6151adf6cfcddcaeb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000978e3286eb805934215a88694d80b09aded68d900000000000000000000000000c8b5822b6e02cda722174f19a1439a7495a3fa60000000000000000000000000000000000000000000000000000000000000002000000000000000000000000978e3286eb805934215a88694d80b09aded68d900000000000000000000000000c8b5822b6e02cda722174f19a1439a7495a3fa60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000127500000000000000000000000000a8452ec99ce0c64f20701db7dd3abdb607c00496000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d7080900000000000000000000000000000000000000000000000000000000000000060000000000000000000000007083c6a0f61b3fdc6a8f4bb573f5097b485cbb9500000000000000000000000010e09aacfb9408a6da536d258d3d64718ab56e4d000000000000000000000000698bec9a526055cd092e9e15acccfc542b63f92d0000000000000000000000000d8274a6b3cddb84e8fd4f8c93b4cfa26dbcb45d000000000000000000000000af627c77b0b0ed13882b0ff7b10af7a610035a41000000000000000000000000ccfca9c1c0b543d21dc71c43dce7b174a7015fb80000000000000000000000000000000000000000000000000000000000000006000000000000000000000000bf91bfd887138c482101bff998f4a96d41c5c4300000000000000000000000008856475dd525166b6654edd18e0011e592459a8e000000000000000000000000c966b8836e01db8f720f0a169da0252767b87454000000000000000000000000713886700f9f4b7df033bd1615177684cedceee4000000000000000000000000a131e33ef51a90640f54291645bdcee9de3d1c1100000000000000000000000030949311d69fa2eae2b805a9905eb6d72a5b38a80000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000a8452ec99ce0c64f20701db7dd3abdb607c004960000000000000000000000004f559f30f5eb88d635fde1548c4267db8fab0351000000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d7080900000000000000000000000050eef481cae4250d252ae577a09bf514f224c6c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c57726170706564205745544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004574554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000b5772617070656420524f4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000457524f4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000134178696520496e66696e6974792053686172640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034158530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000012536d6f6f7468204c6f766520506f74696f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003534c50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000855534420436f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553444300000000000000000000000000000000000000000000000000000000000000000000000000000000399251e522341ef9791cfdc520caf8a89563ee90000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000006c584057a233113f3d6bbb9fa535457f882e4a1651e9872443fbbc09c98cab8b5d0775821d287000a7bcdf57179f0756bcea1e44933bc9b95e7437a24f89565ec922694c2a69e2569e7c38daf93226a6654bf3ab7f08a5bae2f0f3ba29b7c335c8961c3586584723ed2cf8ed4692507f7ccfa033d901aa56911770fa9ab4bb3e03b1918b42fc7ffb813c3827ed00534d936c7930115f3d65fab756c2e15b0e3bdfa57e1de87203668f02b950f40e1246963fa77677df934e74c97577520c1513700000000000000000000000000000000000000000000000000000000000000065d2503fc5f74f349f61fd45c72868b37a10b28a35052be8e3f15eb5d1f65796c00e49bee553750db35dc75dd0f611fc9ca1a950367e3c78244d9fbf66e643c7c7c8efe0b120312d5f846e2e27820676655285e2808b5e4e93580b1d5b5129b0c3d07b40a68891e1ce2246c87932f18ffd4c01876519808e339af84d9d65aab7fe7bedbcabd91f0b98becc732538ae35a6d72e3efc234a10b4383ae967d1af9590e91dc744fe301c24bac6970238cabaca15627df2414bf146a664dd0792399b3) - │ │ └─ ← () - │ └─ ← 72975 bytes of code - ├─ [5408475] 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f::run() - │ ├─ [169710] GeneralConfig::sharedArguments() [staticcall] - │ │ └─ ← SharedParameter({ mainchainBridgeManager: BridgeManagerParam({ num: 70, denom: 100, roninChainId: 31337 [3.133e4], expiryDuration: 0, bridgeContract: 0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB, callbackRegisters: [], bridgeOperators: [], governors: [], voteWeights: [], targetOptions: [1], targets: [0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB] }), mainchainGatewayV3: MainchainGatewayV3Param({ roleSetter: 0x0000000000000000000000000000000000000000, wrappedToken: 0x0000000000000000000000000000000000000000, roninChainId: 0, numerator: 1, highTierVWNumerator: 10, denominator: 10, addresses: [[0x978e3286EB805934215a88694d80b09aDed68D90, 0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6], [0x978e3286EB805934215a88694d80b09aDed68D90, 0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6], []], thresholds: [[10, 0], [20, 0], [100000 [1e5], 0], [12, 0]], standards: [0, 0] }), roninBridgeManager: BridgeManagerParam({ num: 2, denom: 4, roninChainId: 0, expiryDuration: 1209600 [1.209e6], bridgeContract: 0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496, callbackRegisters: [0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809], bridgeOperators: [0x7083C6a0F61B3FdC6a8f4Bb573F5097b485Cbb95, 0x10e09AaCfb9408a6da536d258d3d64718ab56E4D, 0x698beC9a526055cD092E9E15aCcCfC542b63f92D, 0x0D8274A6B3CDDB84e8FD4F8c93B4cfA26dBCb45D, 0xaf627C77b0b0ed13882b0FF7B10af7a610035A41, 0xcCfCA9C1C0b543d21DC71C43dce7B174A7015Fb8], governors: [0xbF91bFD887138C482101Bff998F4A96D41C5c430, 0x8856475Dd525166b6654eDd18e0011e592459a8E, 0xC966b8836E01dB8f720f0A169dA0252767b87454, 0x713886700F9F4b7dF033BD1615177684cEDCeee4, 0xa131e33Ef51a90640F54291645BdcEE9De3D1c11, 0x30949311D69Fa2eAE2b805A9905eb6D72a5B38a8], voteWeights: [100, 100, 100, 100, 100, 100], targetOptions: [1, 2, 3, 4], targets: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496, 0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351, 0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809, 0x50EEf481cae4250d252Ae577A09bF514f224C6C4] }), roninGatewayV3: RoninGatewayV3Param({ roleSetter: 0x0000000000000000000000000000000000000000, numerator: 3, denominator: 6, trustedNumerator: 2, trustedDenominator: 3, withdrawalMigrators: [], packedAddresses: [[0x0000000000000000000000000000000000000000], [0x0000000000000000000000000000000000000000]], packedNumbers: [[1], [0]], standards: [0] }), bridgeSlash: BridgeSlashParam({ validatorContract: 0x13492C1CaA270F0A24342015A049518CF093dD40, bridgeManagerContract: 0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3, bridgeTrackingContract: 0x50EEf481cae4250d252Ae577A09bF514f224C6C4, dposGA: 0x84850a90002c2edf9BFF8D3C296e9C9C0427CD9e }), bridgeTracking: BridgeTrackingParam({ bridgeContract: 0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496, validatorContract: 0x13492C1CaA270F0A24342015A049518CF093dD40, startedAtBlock: 0 }), bridgeReward: BridgeRewardParam({ bridgeManagerContract: 0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3, bridgeTrackingContract: 0x50EEf481cae4250d252Ae577A09bF514f224C6C4, bridgeSlashContract: 0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809, validatorSetContract: 0x13492C1CaA270F0A24342015A049518CF093dD40, dposGA: 0x84850a90002c2edf9BFF8D3C296e9C9C0427CD9e, rewardPerPeriod: 5000 }), weth: MockWrappedTokenParam({ name: "Wrapped WETH", symbol: "WETH" }), wron: MockWrappedTokenParam({ name: "Wrapped RON", symbol: "WRON" }), axs: MockERC20Param({ name: "Axie Infinity Shard", symbol: "AXS" }), slp: MockERC20Param({ name: "Smooth Love Potion", symbol: "SLP" }), usdc: MockERC20Param({ name: "USD Coin", symbol: "USDC" }), test: UnitTestParam({ proxyAdmin: 0x399251E522341ef9791CfdC520caF8a89563ee90, operatorPKs: [89338892785005572287897341235069628097861401345577076384027374511660850657461 [8.933e76], 94291935571555911197469540623796976523702620179200967527175130350870576063980 [9.429e76], 66105842787854347706174987450235791373805460984806302077048451364001077277532 [6.61e76], 62139592644894956050512135403780103102340499689216530470315027870165852992480 [6.213e76], 26730799742766852067733297249950721399537296601340543341730795111646130922429 [2.673e76], 113233486732718915359374711713006098219786402783232076428732164185014040351031 [1.132e77]], governorPKs: [42130495768838953123449699907647043401609189235260698547160306600511619299692 [4.213e76], 403917326894831356924335699703306599620251154684925206401321994183394999420 [4.039e74], 56339438849551946521399288704068023525847000585964828640418712388045726980876 [5.633e76], 27604694287983472608131360737372851209735677770180426011553376648209901464447 [2.76e76], 104821485913365662130142988392886912637914151491318229463022685936103607433561 [1.048e77], 6590094224521758730518853749126478106862199057651219259336272091588099021235 [6.59e75]] }) }) - │ ├─ [0] console::log("> ", "\u{1b}[94m_deployProxy RoninGatewayV3\u{1b}[0m", "...") [staticcall] - │ │ └─ ← () - │ ├─ [5406] GeneralConfig::getContractName(0x0e526f6e696e4761746577617956330000000000000000000000000000000000) [staticcall] - │ │ └─ ← "RoninGatewayV3" - │ ├─ [0] console::log("> ", "\u{1b}[94m_deployLogic RoninGatewayV3\u{1b}[0m", "...") [staticcall] - │ │ └─ ← () - │ ├─ [5406] GeneralConfig::getContractName(0x0e526f6e696e4761746577617956330000000000000000000000000000000000) [staticcall] - │ │ └─ ← "RoninGatewayV3" - │ ├─ [3855] GeneralConfig::getContractAbsolutePath(0x0e526f6e696e4761746577617956330000000000000000000000000000000000) [staticcall] - │ │ └─ ← "RoninGatewayV3.sol" - │ ├─ [3270] GeneralConfig::getSender() [staticcall] - │ │ └─ ← DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38] - │ ├─ [0] VM::getNonce(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38]) [staticcall] - │ │ └─ ← 3 - │ ├─ [3270] GeneralConfig::getSender() [staticcall] - │ │ └─ ← DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38] - │ ├─ [0] VM::broadcast() - │ │ └─ ← () - │ ├─ [0] VM::getCode("RoninGatewayV3.sol") [staticcall] - │ │ └─ ← 0x608060405234801561001057600080fd5b506000805460ff19169055614d358061002a6000396000f3fe6080604052600436106102815760003560e01c8063835fc6ca1161014f578063c28f7894116100c1578063e75235b81161007a578063e75235b814610838578063ecc8364914610850578063f0ce418e1461087d578063f668214a146108c3578063fa389659146108e3578063fc6574bc1461090357610290565b8063c28f789414610752578063ca15c87314610798578063d547741f146107b8578063dafae408146107d8578063dbd2ef6c146107f8578063de981f1b1461081857610290565b80639584a592116101135780639584a5921461069a578063a217fddf146106ba578063affed0e0146106cf578063b9afa177146106e5578063b9c3620914610705578063bc7f03861461072557610290565b8063835fc6ca146105f45780638456cb5914610625578063865e6fd31461063a5780639010d07c1461065a57806391d148541461067a57610290565b80633e70838b116101f35780635cd8a76b116101ac5780635cd8a76b146105475780635d6a9a901461055c57806364363f781461058957806371706cbe146105a957806375535f86146105bf5780637de5dedd146105df57610290565b80633e70838b146104595780633f4ba83a1461047957806347b56b2c1461048e5780634d92c4f0146104ae5780635a7dd06a1461050f5780635c975abb1461052f57610290565b806317fa2ea11161024557806317fa2ea11461036e578063248a9ca31461039b5780632f2ff15d146103d95780633101cfcb146103f957806336568abe146104195780633e4574ec1461043957610290565b806301ffc9a714610298578063065b3adf146102cd5780630b1ff17f14610305578063109679ef1461032557806317892f961461034557610290565b366102905761028e610955565b005b61028e610955565b3480156102a457600080fd5b506102b86102b3366004613afa565b61096e565b60405190151581526020015b60405180910390f35b3480156102d957600080fd5b506005546102ed906001600160a01b031681565b6040516001600160a01b0390911681526020016102c4565b34801561031157600080fd5b5061028e610320366004613b24565b610999565b34801561033157600080fd5b5061028e610340366004613b55565b6109b0565b34801561035157600080fd5b506078546079545b604080519283526020830191909152016102c4565b34801561037a57600080fd5b5061038e610389366004613bb2565b610a55565b6040516102c49190613bf3565b3480156103a757600080fd5b506103cb6103b6366004613c39565b6000908152606b602052604090206001015490565b6040519081526020016102c4565b3480156103e557600080fd5b5061028e6103f4366004613c72565b610d92565b34801561040557600080fd5b5061028e610414366004613ca2565b610dbc565b34801561042557600080fd5b5061028e610434366004613c72565b610e68565b34801561044557600080fd5b506102b8610454366004613c72565b610ee2565b34801561046557600080fd5b5061028e610474366004613ca2565b610f12565b34801561048557600080fd5b5061028e610f3c565b34801561049a57600080fd5b5061028e6104a9366004613c39565b610f4e565b3480156104ba57600080fd5b506104ff6104c9366004613cbf565b606f602090815260009283526040808420909152908252902080546001820154600383015460049093015460ff90921692909184565b6040516102c49493929190613cf7565b34801561051b57600080fd5b5061028e61052a366004613d27565b611119565b34801561053b57600080fd5b5060005460ff166102b8565b34801561055357600080fd5b5061028e61117e565b34801561056857600080fd5b5061057c610577366004613da1565b611280565b6040516102c49190613ddd565b34801561059557600080fd5b5061028e6105a4366004613e09565b611324565b3480156105b557600080fd5b506103cb606e5481565b3480156105cb57600080fd5b506103596105da366004613cbf565b61135a565b3480156105eb57600080fd5b506103cb61137b565b34801561060057600080fd5b5061061461060f366004613c39565b611392565b6040516102c4959493929190613ebd565b34801561063157600080fd5b5061028e611464565b34801561064657600080fd5b5061028e610655366004613f0b565b611474565b34801561066657600080fd5b506102ed610675366004613cbf565b61148f565b34801561068657600080fd5b506102b8610695366004613c72565b6114a7565b3480156106a657600080fd5b5061028e6106b5366004613f48565b6114d2565b3480156106c657600080fd5b506103cb600081565b3480156106db57600080fd5b506103cb60045481565b3480156106f157600080fd5b5061038e610700366004614041565b611621565b34801561071157600080fd5b50610359610720366004613cbf565b6117b3565b34801561073157600080fd5b506103cb610740366004613ca2565b60386020526000908152604090205481565b34801561075e57600080fd5b506104ff61076d366004613c39565b607660205260009081526040902080546001820154600383015460049093015460ff90921692909184565b3480156107a457600080fd5b506103cb6107b3366004613c39565b6117c8565b3480156107c457600080fd5b5061028e6107d3366004613c72565b6117df565b3480156107e457600080fd5b506102b86107f3366004613c39565b611804565b34801561080457600080fd5b5061028e6108133660046140b6565b611830565b34801561082457600080fd5b506102ed610833366004614179565b611882565b34801561084457600080fd5b50600154600254610359565b34801561085c57600080fd5b5061087061086b366004614194565b6118fd565b6040516102c4919061422f565b34801561088957600080fd5b506104ff610898366004613c39565b607060205260009081526040902080546001820154600383015460049093015460ff90921692909184565b3480156108cf57600080fd5b506102b86108de366004613c39565b611a64565b3480156108ef57600080fd5b5061028e6108fe366004613e09565b611a92565b34801561090f57600080fd5b506102b861091e366004614293565b6000928352606f602090815260408085209385529281528284206001600160a01b0392909216845260029091019052902054151590565b60405163129c2ce160e31b815260040160405180910390fd5b60006001600160e01b03198216635a05180f60e01b1480610993575061099382611c8b565b92915050565b6109a1611cc0565b6109ac823383611d06565b5050565b6109b8611cc0565b6109c0611dde565b336109e16109d3368490038401846143da565b826109dc61137b565b611e7f565b6109eb6003611882565b60405163c7c4fea960e01b81526001600160a01b03919091169063c7c4fea990610a1f90600090863590869060040161447b565b600060405180830381600087803b158015610a3957600080fd5b505af1158015610a4d573d6000803e3d6000fd5b505050505050565b6060610a5f611dde565b336000610a6a61137b565b90506000846001600160401b03811115610a8657610a866142cc565b604051908082528060200260200182016040528015610aaf578160200160208202803683370190505b5093506000610abe6003611882565b905060005b86811015610d8757878782818110610add57610add6144a8565b905060200201359250816001600160a01b031663c7c4fea9600285886040518463ffffffff1660e01b8152600401610b179392919061447b565b600060405180830381600087803b158015610b3157600080fd5b505af1158015610b45573d6000803e3d6000fd5b50505050610b5283611a64565b15610b80576001868281518110610b6b57610b6b6144a8565b91151560209283029190910190910152610d7f565b600083815260706020908152604080832060718352818420825160a081019093528054835260018082015492959491929184019160ff1690811115610bc757610bc7613ce1565b6001811115610bd857610bd8613ce1565b8152604080516060808201835260028501546001600160a01b039081168352600386015481166020848101919091526004870154848601528086019390935283518083018552600587015482168152600687015490911692810192909252600785015482840152828401919091528151808201909252600884018054919093019290829060ff166001811115610c7057610c70613ce1565b6001811115610c8157610c81613ce1565b81526001820154602082015260029091015460409091015290525090506000610ca982612120565b90506000610cb9848a8a856121ea565b90506001816004811115610ccf57610ccf613ce1565b03610d7a57835460ff19166002908117855560405163114fc47560e11b81526001600160a01b0388169163229f88ea91610d0e91908b906004016144be565b600060405180830381600087803b158015610d2857600080fd5b505af1158015610d3c573d6000803e3d6000fd5b505050507f62520d049932cdee872e9b3c59c0f6073637147e5e9bc8b050b062430eaf5c9f8284604051610d719291906144d9565b60405180910390a15b505050505b600101610ac3565b505050505092915050565b6000828152606b6020526040902060010154610dad8161221b565b610db78383612228565b505050565b603754600390610100900460ff16158015610dde575060375460ff8083169116105b610e035760405162461bcd60e51b8152600401610dfa9061453a565b60405180910390fd5b6037805461ffff191660ff831617610100179055610e22600b8361224a565b6037805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b6001600160a01b0381163314610ed85760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610dfa565b6109ac82826122ee565b60008281526070602090815260408083206001600160a01b038516845260020190915281205415155b9392505050565b610f1a612310565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b610f4461236a565b610f4c6123d9565b565b610f56611cc0565b610f5f81611a64565b15610f7d576040516327ddf84960e11b815260040160405180910390fd5b6000818152607160209081526040808320815160a0810190925280548252600180820154929391929184019160ff1690811115610fbc57610fbc613ce1565b6001811115610fcd57610fcd613ce1565b8152604080516060808201835260028501546001600160a01b039081168352600386015481166020848101919091526004870154848601528086019390935283518083018552600587015482168152600687015490911692810192909252600785015482840152828401919091528151808201909252600884018054919093019290829060ff16600181111561106557611065613ce1565b600181111561107657611076613ce1565b8152600182015460208201526002909101546040918201529152606083015101519192505046146110e0576060810151604090810151905163092048d160e11b81526001600160e01b03196000351660048201526024810191909152466044820152606401610dfa565b7f04e8cbd836dea43a2dc7eb19de345cca3a8e6978a2ef5225d924775500f67c7c61110a82612120565b82604051610e5c9291906144d9565b611121611cc0565b6000829003611143576040516316ee9d3b60e11b815260040160405180910390fd5b60005b8281101561117857611170848483818110611163576111636144a8565b905060a002013384611d06565b600101611146565b50505050565b603754600290610100900460ff161580156111a0575060375460ff8083169116105b6111bc5760405162461bcd60e51b8152600401610dfa9061453a565b6037805461ffff191660ff8316176101001790556074546111e8906008906001600160a01b031661224a565b607554611200906003906001600160a01b031661224a565b60775461121890600a906001600160a01b031661224a565b607480546001600160a01b031990811690915560758054821690556077805490911690556037805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b604080518082018252600080825260208083018290526001600160a01b038616825260738152838220858352905282902082518084019093528054919291829060ff1660018111156112d4576112d4613ce1565b60018111156112e5576112e5613ce1565b815290546001600160a01b036101009091048116602092830152908201519192501661099357604051631b79f53b60e21b815260040160405180910390fd5b61132c612310565b600083900361134e576040516316ee9d3b60e11b815260040160405180910390fd5b6111788484848461242b565b600080611365612310565b61136f848461250e565b915091505b9250929050565b600061138d611388612599565b612606565b905090565b607160209081526000918252604091829020805460018083015485516060808201885260028601546001600160a01b03908116835260038701548116838901526004870154838a015288518083018a526005880154821681526006880154909116978101979097526007860154878901528751908101909752600885018054949760ff93841697929692959294909391928492169081111561143657611436613ce1565b600181111561144757611447613ce1565b815260200160018201548152602001600282015481525050905085565b61146c61236a565b610f4c61263c565b61147c612310565b61148581612679565b6109ac828261224a565b6000828152606c60205260408120610f0b90836126af565b6000918252606b602090815260408084206001600160a01b0393909316845291905290205460ff1690565b603754610100900460ff16158080156114f25750603754600160ff909116105b8061150c5750303b15801561150c575060375460ff166001145b6115285760405162461bcd60e51b8152600401610dfa9061453a565b6037805460ff19166001179055801561154b576037805461ff0019166101001790555b61155660008d6126bb565b6115608b8b6126c5565b505061156c898961250e565b506000905061157b8680614588565b905011156115cd576115ae6115908680614588565b61159d6020890189614588565b6115a78980614588565b8989612751565b6115cd6115bb8680614588565b6115c86020880188614588565b61242b565b8015611613576037805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050505050565b606061162b611cc0565b611633611dde565b3361163c613a8d565b836001600160401b03811115611654576116546142cc565b60405190808252806020026020018201604052801561167d578160200160208202803683370190505b509250600061168a61137b565b905060006116986003611882565b905060005b86811015610d87578787828181106116b7576116b76144a8565b905061016002018036038101906116ce91906143da565b805160405163c7c4fea960e01b81529195506001600160a01b0384169163c7c4fea99161170391600091908a9060040161447b565b600060405180830381600087803b15801561171d57600080fd5b505af1158015611731573d6000803e3d6000fd5b506002925061173e915050565b6040808601518101516000908152606f6020908152828220885183529052205460ff16600481111561177257611772613ce1565b036117a057600186828151811061178b5761178b6144a8565b911515602092830291909101909101526117ab565b6117ab848685611e7f565b60010161169d565b6000806117be612310565b61136f84846126c5565b6000818152606c602052604081206109939061295a565b6000828152606b60205260409020600101546117fa8161221b565b610db783836122ee565b600061180e612599565b60015461181b91906145e7565b60025461182890846145e7565b101592915050565b611838612310565b6000879003611868576000356001600160e01b0319166040516306b5667560e21b8152600401610dfa91906145fe565b6118788888888888888888612751565b5050505050505050565b60007fdea3103d22025c269050bea94c0c84688877f12fa22b7e6d2d5d78a9a49aa1cb600083600f8111156118b9576118b9613ce1565b60ff1681526020810191909152604001600020546001600160a01b03169050806118f8578160405163409140df60e11b8152600401610dfa9190614613565b919050565b6060816001600160401b03811115611917576119176142cc565b60405190808252806020026020018201604052801561194a57816020015b60608152602001906001900390816119355790505b50905060005b82811015611a5c57600085815260726020526040812090858584818110611979576119796144a8565b905060200201602081019061198e9190613ca2565b6001600160a01b03166001600160a01b0316815260200190815260200160002080546119b99061462d565b80601f01602080910402602001604051908101604052809291908181526020018280546119e59061462d565b8015611a325780601f10611a0757610100808354040283529160200191611a32565b820191906000526020600020905b815481529060010190602001808311611a1557829003601f168201915b5050505050828281518110611a4957611a496144a8565b6020908102919091010152600101611950565b509392505050565b6000600260008381526070602052604090205460ff166004811115611a8b57611a8b613ce1565b1492915050565b611a9a611cc0565b611aa2611dde565b338315801590611ab157508382145b611adc576000356001600160e01b0319166040516306b5667560e21b8152600401610dfa91906145fe565b6000611ae661137b565b9050600080611af56003611882565b905060005b87811015611c8057888882818110611b1457611b146144a8565b905060200201359250868682818110611b2f57611b2f6144a8565b9050602002810190611b419190614661565b60008581526072602090815260408083206001600160a01b038b168452909152902091611b6f9190836146ef565b5060405163c7c4fea960e01b81526001600160a01b0383169063c7c4fea990611ba19060019087908a9060040161447b565b600060405180830381600087803b158015611bbb57600080fd5b505af1158015611bcf573d6000803e3d6000fd5b50505060008481526076602052604081209150611bee828888886121ea565b90506001816004811115611c0457611c04613ce1565b03611c7657815460ff1916600217825560405163114fc47560e11b81526001600160a01b0385169063229f88ea90611c439060019089906004016144be565b600060405180830381600087803b158015611c5d57600080fd5b505af1158015611c71573d6000803e3d6000fd5b505050505b5050600101611afa565b505050505050505050565b60006001600160e01b03198216637965db0b60e01b148061099357506301ffc9a760e01b6001600160e01b0319831614610993565b60005460ff1615610f4c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610dfa565b611d20611d1b368590038501604086016147ae565b612964565b611d29836129df565b6000611d44611d3e6040860160208701613ca2565b83611280565b80519091506001811115611d5a57611d5a613ce1565b611d6a60608601604087016147ca565b6001811115611d7b57611d7b613ce1565b14611d985760405162035e2b60ea1b815260040160405180910390fd5b611dc78330611dad6040880160208901613ca2565b611dbf36899003890160408a016147ae565b929190612a5d565b611dd78483858460200151612c5c565b5050505050565b611de8600b611882565b604051635a02d57960e11b81523360048201526001600160a01b03919091169063b405aaf290602401602060405180830381865afa158015611e2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5291906147e7565b610f4c576000356001600160e01b0319166006604051620f948f60ea1b8152600401610dfa929190614809565b82516080840151611e8f90612964565b600084602001516001811115611ea757611ea7613ce1565b14611ec55760405163182f3d8760e11b815260040160405180910390fd5b4684606001516040015114611f13576060840151604090810151905163092048d160e11b81526001600160e01b03196000351660048201526024810191909152466044820152606401610dfa565b6000611f2f856060015160200151866040015160400151611280565b6080860151519091506001811115611f4957611f49613ce1565b81516001811115611f5c57611f5c613ce1565b148015611f8657508460400151602001516001600160a01b031681602001516001600160a01b0316145b611fa35760405163f4b8742f60e01b815260040160405180910390fd5b6040808601518101516000908152606f6020908152828220858352905290812090611fcd87612120565b90506000611fdd838888856121ea565b905087604001516040015185886001600160a01b03167f48c4262ed68beb92fe5d7d48d70772e49cd50c317937dea60a99f15f794b64598560405161202491815260200190565b60405180910390a4600181600481111561204057612040613ce1565b0361187857825460ff191660021783556060880151805160209091015160808a015161206f9290916000612de6565b6120796003611882565b885160405163114fc47560e11b81526001600160a01b03929092169163229f88ea916120ab91600091906004016144be565b600060405180830381600087803b1580156120c557600080fd5b505af11580156120d9573d6000803e3d6000fd5b505050507f8d20d8121a34dded9035ff5b43e901c142824f7a22126392992c353c37890524828960405161210e9291906144d9565b60405180910390a15050505050505050565b6000806121308360400151613102565b905060006121418460600151613102565b905060006121958560800151604080517f1e2b74b2a792d5c0f0b6e59b037fa9d43d84fbb759337f0112fcc15ca414fc8d815282516020808301919091528301518183015291015160608201526080902090565b604080517fb9d1fe7c9deeec5dc90a2f47ff1684239519f2545b2228d3d91fb27df3189eea815287516020808301919091529097015190870152606086019390935250608084015260a08301525060c0902090565b60006121f785858461314a565b60006122038684613200565b90506122118685838661330e565b9695505050505050565b612225813361335a565b50565b61223282826133be565b6000828152606c60205260409020610db79082613444565b807fdea3103d22025c269050bea94c0c84688877f12fa22b7e6d2d5d78a9a49aa1cb600084600f81111561228057612280613ce1565b60ff168152602081019190915260400160002080546001600160a01b0319166001600160a01b03928316179055811682600f8111156122c1576122c1613ce1565b6040517f865d1c228a8ea13709cfe61f346f7ff67f1bbd4a18ff31ad3e7147350d317c5990600090a35050565b6122f88282613459565b6000828152606c60205260409020610db790826134c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b03163314610f4c576000356001600160e01b0319166001604051620f948f60ea1b8152600401610dfa929190614809565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b03163314806123ac57506005546001600160a01b031633145b610f4c576000356001600160e01b0319166001604051620f948f60ea1b8152600401610dfa929190614809565b6123e16134d5565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b828114612459576000356001600160e01b0319166040516306b5667560e21b8152600401610dfa91906145fe565b60005b838110156124ca57828282818110612476576124766144a8565b9050602002013560386000878785818110612493576124936144a8565b90506020020160208101906124a89190613ca2565b6001600160a01b0316815260208101919091526040016000205560010161245c565b507f6f52f53a938df83439fa4c6055c7df0a6906d621aa6dfa4708187037fdfc41da8484848460405161250094939291906148a5565b60405180910390a150505050565b600080828411156125325760405163964a4d2760e01b815260040160405180910390fd5b505060018054600254607885905560798490556004805493840190556040805183815260208101839052929391928592879290917feac82d4d949d2d4f77f96aa68ab6b1bb750da73f14e55d41a1b93f387471ecba91015b60405180910390a49250929050565b60006125a5600b611882565b6001600160a01b03166306aba0e16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138d91906148d7565b600060025460016002548460015461261e91906145e7565b61262891906148f0565b6126329190614903565b6109939190614916565b612644611cc0565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861240e3390565b806001600160a01b03163b60000361222557604051630bfc64a360e21b81526001600160a01b0382166004820152602401610dfa565b6000610f0b838361351e565b6109ac8282612228565b600080828411156126f7576000356001600160e01b0319166040516387f6f09560e01b8152600401610dfa91906145fe565b50506001805460028054858455908490556004805493840190556040805183815260208101839052929391928592879290917f976f8a9c5bdf8248dec172376d6e2b80a8e3df2f0328e381c6db8e1cf138c0f8910161258a565b868514801561275f57508683145b61278a576000356001600160e01b0319166040516306b5667560e21b8152600401610dfa91906145fe565b60005b8781101561291c578686828181106127a7576127a76144a8565b90506020020160208101906127bc9190613ca2565b607360008b8b858181106127d2576127d26144a8565b90506020020160208101906127e79190613ca2565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061281b5761281b6144a8565b90506020020135815260200190815260200160002060000160016101000a8154816001600160a01b0302191690836001600160a01b03160217905550828282818110612869576128696144a8565b905060200201602081019061287e91906147ca565b607360008b8b85818110612894576128946144a8565b90506020020160208101906128a99190613ca2565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008787858181106128dd576128dd6144a8565b60209081029290920135835250810191909152604001600020805460ff19166001838181111561290f5761290f613ce1565b021790555060010161278d565b507f2544bff60c6d5b84946e06804af9f84e150bbee85238dbdee79efca4e0adf401888888888888888860405161210e989796959493929190614938565b6000610993825490565b60008151600181111561297957612979613ce1565b14801561298a575060008160400151115b801561299857506020810151155b806129c257506001815160018111156129b3576129b3613ce1565b1480156129c257506040810151155b6122255760405163034992a760e51b815260040160405180910390fd5b60006129f160608301604084016147ca565b6001811115612a0257612a02613ce1565b148015612a3f575060386000612a1e6040840160208501613ca2565b6001600160a01b031681526020810191909152604001600020546080820135105b1561222557604051636eff4a8560e11b815260040160405180910390fd5b600060608186516001811115612a7557612a75613ce1565b03612b525760408681015181516001600160a01b038881166024830152878116604483015260648083019390935283518083039093018352608490910183526020820180516001600160e01b03166323b872dd60e01b179052915191851691612ade91906149c9565b6000604051808303816000865af19150503d8060008114612b1b576040519150601f19603f3d011682016040523d82523d6000602084013e612b20565b606091505b509092509050818015612b4b575080511580612b4b575080806020019051810190612b4b91906147e7565b9150612c36565b600186516001811115612b6757612b67613ce1565b03612c1d57602086810151604080516001600160a01b0389811660248301528881166044830152606480830194909452825180830390940184526084909101825292820180516001600160e01b03166323b872dd60e01b1790525191851691612bd091906149c9565b6000604051808303816000865af19150503d8060008114612c0d576040519150601f19603f3d011682016040523d82523d6000602084013e612c12565b606091505b505080925050612c36565b6040516361e411a760e11b815260040160405180910390fd5b81610a4d5785858585604051639d2e4c6760e01b8152600401610dfa94939291906149e5565b606e805460009182612c6d83614a1b565b9091555090506000612c9484838588612c8b368c90038c018c614a34565b93929190613548565b60008381526071602090815260409091208251815590820151600180830180549495508594909160ff19909116908381811115612cd357612cd3613ce1565b021790555060408281015180516002840180546001600160a01b039283166001600160a01b03199182161790915560208084015160038701805491851691841691909117905592840151600486015560608601518051600587018054918516918416919091179055928301516006860180549190931691161790550151600782015560808201518051600883018054909190829060ff191660018381811115612d7e57612d7e613ce1565b0217905550602082015181600101556040820151816002015550509050507ff313c253a5be72c29d0deb2c8768a9543744ac03d6b3cafd50cc976f1c2632fc612dc682612120565b82604051612dd59291906144d9565b60405180910390a150949350505050565b6000816001600160a01b0316836001600160a01b031603612e955760408086015190516001600160a01b0386169180156108fc02916000818181858888f19350505050612e9057816001600160a01b031663d0e30db086604001516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e6c57600080fd5b505af1158015612e80573d6000803e3d6000fd5b5050505050612e908585856135b4565b611dd7565b600085516001811115612eaa57612eaa613ce1565b03613013576040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015612ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1a91906148d7565b9050856040015181101561300257836001600160a01b03166340c10f1930838960400151612f489190614903565b6040516001600160a01b03909216602483015260448201526064016040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051612f9c91906149c9565b6000604051808303816000865af19150503d8060008114612fd9576040519150601f19603f3d011682016040523d82523d6000602084013e612fde565b606091505b5050809250508161300257604051632f739fff60e11b815260040160405180910390fd5b61300d8686866135b4565b50611dd7565b60018551600181111561302857613028613ce1565b03612c1d5761303c83858760200151613632565b612e9057602085810151604080516001600160a01b038881166024830152604480830194909452825180830390940184526064909101825292820180516001600160e01b03166340c10f1960e01b179052519185169161309c91906149c9565b6000604051808303816000865af19150503d80600081146130d9576040519150601f19603f3d011682016040523d82523d6000602084013e6130de565b606091505b50508091505080612e905760405163c8e3a09f60e01b815260040160405180910390fd5b604080517f353bdd8d69b9e3185b3972e08b03845c0c14a21a390215302776a7a34b0e8764815282516020808301919091528301518183015291015160608201526080902090565b60008360030154118015613162575042836003015411155b1561317357825460ff191660041783555b6001600160a01b0382166000908152600284016020526040902054156131b75760405163025fd59560e41b81526001600160a01b0383166004820152602401610dfa565b6001600160a01b039091166000818152600284016020908152604082209390935560059093018054600181018255908452919092200180546001600160a01b0319169091179055565b600080600061320f600b611882565b6001600160a01b031663c441c4a86040518163ffffffff1660e01b8152600401600060405180830381865afa15801561324c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132749190810190614b22565b81519194509250905060005b8181101561330457858760020160008684815181106132a1576132a16144a8565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054036132fc578281815181106132e1576132e16144a8565b60200260200101516bffffffffffffffffffffffff16850194505b600101613280565b5050505092915050565b600083831015801561333557506000855460ff16600481111561333357613333613ce1565b145b1561334d57845460ff19166001908117865585018290555b5050915460ff1692915050565b61336482826114a7565b6109ac5761337c816001600160a01b031660146136dd565b6133878360206136dd565b604051602001613398929190614c1a565b60408051601f198184030181529082905262461bcd60e51b8252610dfa91600401614c8f565b6133c882826114a7565b6109ac576000828152606b602090815260408083206001600160a01b03851684529091529020805460ff191660011790556134003390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610f0b836001600160a01b038416613878565b61346382826114a7565b156109ac576000828152606b602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610f0b836001600160a01b0384166138c7565b60005460ff16610f4c5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610dfa565b6000826000018281548110613535576135356144a8565b9060005260206000200154905092915050565b613550613a8d565b92835260016020808501919091526060840180516001600160a01b0396871690528682015181519087169083015251466040918201528651818601805191881690915280519490961693909101929092529251810192909252910151608082015290565b600080845160018111156135ca576135ca613ce1565b036135e5576135de828486604001516139ba565b905061360e565b6001845160018111156135fa576135fa613ce1565b03612c1d576135de82848660200151613632565b80611178578383836040516341bd7d9160e11b8152600401610dfa93929190614ca2565b604080513060248201526001600160a01b038481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092861691613690916149c9565b6000604051808303816000865af19150503d80600081146136cd576040519150601f19603f3d011682016040523d82523d6000602084013e6136d2565b606091505b509095945050505050565b606060006136ec8360026145e7565b6136f79060026148f0565b6001600160401b0381111561370e5761370e6142cc565b6040519080825280601f01601f191660200182016040528015613738576020820181803683370190505b509050600360fc1b81600081518110613753576137536144a8565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613782576137826144a8565b60200101906001600160f81b031916908160001a90535060006137a68460026145e7565b6137b19060016148f0565b90505b6001811115613829576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106137e5576137e56144a8565b1a60f81b8282815181106137fb576137fb6144a8565b60200101906001600160f81b031916908160001a90535060049490941c9361382281614cd2565b90506137b4565b508315610f0b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610dfa565b60008181526001830160205260408120546138bf57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610993565b506000610993565b600081815260018301602052604081205480156139b05760006138eb600183614903565b85549091506000906138ff90600190614903565b905081811461396457600086600001828154811061391f5761391f6144a8565b9060005260206000200154905080876000018481548110613942576139426144a8565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061397557613975614ce9565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610993565b6000915050610993565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009260609290871691613a1791906149c9565b6000604051808303816000865af19150503d8060008114613a54576040519150601f19603f3d011682016040523d82523d6000602084013e613a59565b606091505b509092509050818015613a84575080511580613a84575080806020019051810190613a8491906147e7565b95945050505050565b6040805160a08101825260008082526020808301829052835160608082018652838252818301849052818601849052848601919091528451808201865283815280830184905280860184905281850152845190810185528281529081018290529283015290608082015290565b600060208284031215613b0c57600080fd5b81356001600160e01b031981168114610f0b57600080fd5b60008082840360c0811215613b3857600080fd5b60a0811215613b4657600080fd5b50919360a08501359350915050565b60006101608284031215613b6857600080fd5b50919050565b60008083601f840112613b8057600080fd5b5081356001600160401b03811115613b9757600080fd5b6020830191508360208260051b850101111561137457600080fd5b60008060208385031215613bc557600080fd5b82356001600160401b03811115613bdb57600080fd5b613be785828601613b6e565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b81811015613c2d578351151583529284019291840191600101613c0f565b50909695505050505050565b600060208284031215613c4b57600080fd5b5035919050565b6001600160a01b038116811461222557600080fd5b80356118f881613c52565b60008060408385031215613c8557600080fd5b823591506020830135613c9781613c52565b809150509250929050565b600060208284031215613cb457600080fd5b8135610f0b81613c52565b60008060408385031215613cd257600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b6080810160058610613d0b57613d0b613ce1565b9481526020810193909352604083019190915260609091015290565b600080600060408486031215613d3c57600080fd5b83356001600160401b0380821115613d5357600080fd5b818601915086601f830112613d6757600080fd5b813581811115613d7657600080fd5b87602060a083028501011115613d8b57600080fd5b6020928301989097509590910135949350505050565b60008060408385031215613db457600080fd5b8235613dbf81613c52565b946020939093013593505050565b6002811061222557612225613ce1565b81516040820190613ded81613dcd565b82526020928301516001600160a01b0316929091019190915290565b60008060008060408587031215613e1f57600080fd5b84356001600160401b0380821115613e3657600080fd5b613e4288838901613b6e565b90965094506020870135915080821115613e5b57600080fd5b50613e6887828801613b6e565b95989497509550505050565b80516001600160a01b03908116835260208083015190911690830152604090810151910152565b8051613ea681613dcd565b825260208181015190830152604090810151910152565b8581526101608101613ece86613dcd565b856020830152613ee16040830186613e74565b613eee60a0830185613e74565b612211610100830184613e9b565b8035601081106118f857600080fd5b60008060408385031215613f1e57600080fd5b613f2783613efc565b91506020830135613c9781613c52565b806040810183101561099357600080fd5b60008060008060008060008060008060006101208c8e031215613f6a57600080fd5b613f738c613c67565b9a5060208c0135995060408c0135985060608c0135975060808c013596506001600160401b038060a08e01351115613faa57600080fd5b613fba8e60a08f01358f01613b6e565b909750955060c08d0135811015613fd057600080fd5b613fe08e60c08f01358f01613f37565b94508060e08e01351115613ff357600080fd5b6140038e60e08f01358f01613f37565b9350806101008e0135111561401757600080fd5b506140298d6101008e01358e01613b6e565b81935080925050509295989b509295989b9093969950565b6000806020838503121561405457600080fd5b82356001600160401b038082111561406b57600080fd5b818501915085601f83011261407f57600080fd5b81358181111561408e57600080fd5b866020610160830285010111156140a457600080fd5b60209290920196919550909350505050565b6000806000806000806000806080898b0312156140d257600080fd5b88356001600160401b03808211156140e957600080fd5b6140f58c838d01613b6e565b909a50985060208b013591508082111561410e57600080fd5b61411a8c838d01613b6e565b909850965060408b013591508082111561413357600080fd5b61413f8c838d01613b6e565b909650945060608b013591508082111561415857600080fd5b506141658b828c01613b6e565b999c989b5096995094979396929594505050565b60006020828403121561418b57600080fd5b610f0b82613efc565b6000806000604084860312156141a957600080fd5b8335925060208401356001600160401b038111156141c657600080fd5b6141d286828701613b6e565b9497909650939450505050565b60005b838110156141fa5781810151838201526020016141e2565b50506000910152565b6000815180845261421b8160208601602086016141df565b601f01601f19169290920160200192915050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561428657603f19888603018452614274858351614203565b94509285019290850190600101614258565b5092979650505050505050565b6000806000606084860312156142a857600080fd5b833592506020840135915060408401356142c181613c52565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614304576143046142cc565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614332576143326142cc565b604052919050565b6002811061222557600080fd5b60006060828403121561435957600080fd5b6143616142e2565b9050813561436e81613c52565b8152602082013561437e81613c52565b806020830152506040820135604082015292915050565b6000606082840312156143a757600080fd5b6143af6142e2565b905081356143bc8161433a565b80825250602082013560208201526040820135604082015292915050565b600061016082840312156143ed57600080fd5b60405160a081018181106001600160401b038211171561440f5761440f6142cc565b6040528235815260208301356144248161433a565b60208201526144368460408501614347565b60408201526144488460a08501614347565b606082015261445b846101008501614395565b60808201529392505050565b6003811061447757614477613ce1565b9052565b606081016144898286614467565b60208201939093526001600160a01b0391909116604090910152919050565b634e487b7160e01b600052603260045260246000fd5b604081016144cc8285614467565b8260208301529392505050565b6000610180820190508382528251602083015260208301516144fa81613dcd565b8060408401525060408301516145136060840182613e74565b50606083015161452660c0840182613e74565b506080830151611a5c610120840182613e9b565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000808335601e1984360301811261459f57600080fd5b8301803591506001600160401b038211156145b957600080fd5b6020019150600581901b360382131561137457600080fd5b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610993576109936145d1565b6001600160e01b031991909116815260200190565b602081016010831061462757614627613ce1565b91905290565b600181811c9082168061464157607f821691505b602082108103613b6857634e487b7160e01b600052602260045260246000fd5b6000808335601e1984360301811261467857600080fd5b8301803591506001600160401b0382111561469257600080fd5b60200191503681900382131561137457600080fd5b601f821115610db7576000816000526020600020601f850160051c810160208610156146d05750805b601f850160051c820191505b81811015610a4d578281556001016146dc565b6001600160401b03831115614706576147066142cc565b61471a83614714835461462d565b836146a7565b6000601f84116001811461474e57600085156147365750838201355b600019600387901b1c1916600186901b178355611dd7565b600083815260209020601f19861690835b8281101561477f578685013582556020948501946001909201910161475f565b508682101561479c5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000606082840312156147c057600080fd5b610f0b8383614395565b6000602082840312156147dc57600080fd5b8135610f0b8161433a565b6000602082840312156147f957600080fd5b81518015158114610f0b57600080fd5b6001600160e01b03198316815260408101600b83106144cc576144cc613ce1565b8183526000602080850194508260005b8581101561486857813561484d81613c52565b6001600160a01b03168752958201959082019060010161483a565b509495945050505050565b81835260006001600160fb1b0383111561488c57600080fd5b8260051b80836020870137939093016020019392505050565b6040815260006148b960408301868861482a565b82810360208401526148cc818587614873565b979650505050505050565b6000602082840312156148e957600080fd5b5051919050565b80820180821115610993576109936145d1565b81810381811115610993576109936145d1565b60008261493357634e487b7160e01b600052601260045260246000fd5b500490565b60808152600061494c608083018a8c61482a565b60208382036020850152614961828a8c61482a565b9150838203604085015261497682888a614873565b848103606086015285815286925060200160005b868110156149b857833561499d8161433a565b6149a681613dcd565b8252928201929082019060010161498a565b509c9b505050505050505050505050565b600082516149db8184602087016141df565b9190910192915050565b60c081016149f38287613e9b565b6001600160a01b0394851660608301529284166080820152921660a090920191909152919050565b600060018201614a2d57614a2d6145d1565b5060010190565b600060a08284031215614a4657600080fd5b614a4e6142e2565b8235614a5981613c52565b81526020830135614a6981613c52565b6020820152614a7b8460408501614395565b60408201529392505050565b60006001600160401b03821115614aa057614aa06142cc565b5060051b60200190565b600082601f830112614abb57600080fd5b81516020614ad0614acb83614a87565b61430a565b8083825260208201915060208460051b870101935086841115614af257600080fd5b602086015b84811015614b17578051614b0a81613c52565b8352918301918301614af7565b509695505050505050565b600080600060608486031215614b3757600080fd5b83516001600160401b0380821115614b4e57600080fd5b614b5a87838801614aaa565b9450602091508186015181811115614b7157600080fd5b614b7d88828901614aaa565b945050604086015181811115614b9257600080fd5b86019050601f81018713614ba557600080fd5b8051614bb3614acb82614a87565b81815260059190911b82018301908381019089831115614bd257600080fd5b928401925b82841015614c0b5783516bffffffffffffffffffffffff81168114614bfc5760008081fd5b82529284019290840190614bd7565b80955050505050509250925092565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614c528160178501602088016141df565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614c838160288401602088016141df565b01602801949350505050565b602081526000610f0b6020830184614203565b60a08101614cb08286613e9b565b6001600160a01b03938416606083015291909216608090920191909152919050565b600081614ce157614ce16145d1565b506000190190565b634e487b7160e01b600052603160045260246000fdfea26469706673582212209ee02a5eecdaf000f89a97c80581647ea2e6846acd876adce9ad2517b01ba19a64736f6c63430008170033 - │ ├─ [3959122] → new (31337)RoninGatewayV3::Logic[0x90193C961A926261B756D1E5bb255e67ff9498A1]@0x90193C961A926261B756D1E5bb255e67ff9498A1 - │ │ └─ ← 19765 bytes of code - │ ├─ [8581] GeneralConfig::label(31337 [3.133e4], (31337)RoninGatewayV3::Logic[0x90193C961A926261B756D1E5bb255e67ff9498A1]: [0x90193C961A926261B756D1E5bb255e67ff9498A1], "RoninGatewayV3::Logic") - │ │ ├─ [0] VM::toString(31337 [3.133e4]) [staticcall] - │ │ │ └─ ← "31337" - │ │ ├─ [0] VM::toString((31337)RoninGatewayV3::Logic[0x90193C961A926261B756D1E5bb255e67ff9498A1]: [0x90193C961A926261B756D1E5bb255e67ff9498A1]) [staticcall] - │ │ │ └─ ← "0x90193C961A926261B756D1E5bb255e67ff9498A1" - │ │ ├─ [0] VM::label((31337)RoninGatewayV3::Logic[0x90193C961A926261B756D1E5bb255e67ff9498A1]: [0x90193C961A926261B756D1E5bb255e67ff9498A1], "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mRoninGatewayV3::Logic\u{1b}[0m[0x90193C961A926261B756D1E5bb255e67ff9498A1]") - │ │ │ └─ ← () - │ │ └─ ← () - │ ├─ [3270] GeneralConfig::getSender() [staticcall] - │ │ └─ ← DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38] - │ ├─ [19843] ArtifactFactory::generateArtifact(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38], (31337)RoninGatewayV3::Logic[0x90193C961A926261B756D1E5bb255e67ff9498A1]: [0x90193C961A926261B756D1E5bb255e67ff9498A1], "RoninGatewayV3.sol", "RoninGatewayV3Logic", 0x, 3) - │ │ ├─ [1127] GeneralConfig::getCurrentNetwork() [staticcall] - │ │ │ └─ ← 0x054c6f63616c0000000000000000000000000000000000000000000000000000 - │ │ ├─ [2646] GeneralConfig::getExplorer(0x054c6f63616c0000000000000000000000000000000000000000000000000000) [staticcall] - │ │ │ └─ ← "" - │ │ ├─ [0] console::log("\u{1b}[92mRoninGatewayV3Logic will be deployed at: address/0x90193c961a926261b756d1e5bb255e67ff9498a1\u{1b}[0m", "(nonce: 3)") [staticcall] - │ │ │ └─ ← () - │ │ ├─ [1210] GeneralConfig::getRuntimeConfig() [staticcall] - │ │ │ └─ ← Option({ log: false, trezor: false }) - │ │ ├─ [0] VM::getLabel((31337)RoninGatewayV3::Logic[0x90193C961A926261B756D1E5bb255e67ff9498A1]: [0x90193C961A926261B756D1E5bb255e67ff9498A1]) - │ │ │ └─ ← "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mRoninGatewayV3::Logic\u{1b}[0m[0x90193C961A926261B756D1E5bb255e67ff9498A1]" - │ │ ├─ [0] console::log("Skipping artifact generation for:", "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mRoninGatewayV3::Logic\u{1b}[0m[0x90193C961A926261B756D1E5bb255e67ff9498A1]", "\n") [staticcall] - │ │ │ └─ ← () - │ │ └─ ← () - │ ├─ [1127] GeneralConfig::getCurrentNetwork() [staticcall] - │ │ └─ ← 0x054c6f63616c0000000000000000000000000000000000000000000000000000 - │ ├─ [169710] GeneralConfig::sharedArguments() [staticcall] - │ │ └─ ← SharedParameter({ mainchainBridgeManager: BridgeManagerParam({ num: 70, denom: 100, roninChainId: 31337 [3.133e4], expiryDuration: 0, bridgeContract: 0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB, callbackRegisters: [], bridgeOperators: [], governors: [], voteWeights: [], targetOptions: [1], targets: [0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB] }), mainchainGatewayV3: MainchainGatewayV3Param({ roleSetter: 0x0000000000000000000000000000000000000000, wrappedToken: 0x0000000000000000000000000000000000000000, roninChainId: 0, numerator: 1, highTierVWNumerator: 10, denominator: 10, addresses: [[0x978e3286EB805934215a88694d80b09aDed68D90, 0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6], [0x978e3286EB805934215a88694d80b09aDed68D90, 0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6], []], thresholds: [[10, 0], [20, 0], [100000 [1e5], 0], [12, 0]], standards: [0, 0] }), roninBridgeManager: BridgeManagerParam({ num: 2, denom: 4, roninChainId: 0, expiryDuration: 1209600 [1.209e6], bridgeContract: 0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496, callbackRegisters: [0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809], bridgeOperators: [0x7083C6a0F61B3FdC6a8f4Bb573F5097b485Cbb95, 0x10e09AaCfb9408a6da536d258d3d64718ab56E4D, 0x698beC9a526055cD092E9E15aCcCfC542b63f92D, 0x0D8274A6B3CDDB84e8FD4F8c93B4cfA26dBCb45D, 0xaf627C77b0b0ed13882b0FF7B10af7a610035A41, 0xcCfCA9C1C0b543d21DC71C43dce7B174A7015Fb8], governors: [0xbF91bFD887138C482101Bff998F4A96D41C5c430, 0x8856475Dd525166b6654eDd18e0011e592459a8E, 0xC966b8836E01dB8f720f0A169dA0252767b87454, 0x713886700F9F4b7dF033BD1615177684cEDCeee4, 0xa131e33Ef51a90640F54291645BdcEE9De3D1c11, 0x30949311D69Fa2eAE2b805A9905eb6D72a5B38a8], voteWeights: [100, 100, 100, 100, 100, 100], targetOptions: [1, 2, 3, 4], targets: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496, 0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351, 0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809, 0x50EEf481cae4250d252Ae577A09bF514f224C6C4] }), roninGatewayV3: RoninGatewayV3Param({ roleSetter: 0x0000000000000000000000000000000000000000, numerator: 3, denominator: 6, trustedNumerator: 2, trustedDenominator: 3, withdrawalMigrators: [], packedAddresses: [[0x0000000000000000000000000000000000000000], [0x0000000000000000000000000000000000000000]], packedNumbers: [[1], [0]], standards: [0] }), bridgeSlash: BridgeSlashParam({ validatorContract: 0x13492C1CaA270F0A24342015A049518CF093dD40, bridgeManagerContract: 0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3, bridgeTrackingContract: 0x50EEf481cae4250d252Ae577A09bF514f224C6C4, dposGA: 0x84850a90002c2edf9BFF8D3C296e9C9C0427CD9e }), bridgeTracking: BridgeTrackingParam({ bridgeContract: 0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496, validatorContract: 0x13492C1CaA270F0A24342015A049518CF093dD40, startedAtBlock: 0 }), bridgeReward: BridgeRewardParam({ bridgeManagerContract: 0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3, bridgeTrackingContract: 0x50EEf481cae4250d252Ae577A09bF514f224C6C4, bridgeSlashContract: 0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809, validatorSetContract: 0x13492C1CaA270F0A24342015A049518CF093dD40, dposGA: 0x84850a90002c2edf9BFF8D3C296e9C9C0427CD9e, rewardPerPeriod: 5000 }), weth: MockWrappedTokenParam({ name: "Wrapped WETH", symbol: "WETH" }), wron: MockWrappedTokenParam({ name: "Wrapped RON", symbol: "WRON" }), axs: MockERC20Param({ name: "Axie Infinity Shard", symbol: "AXS" }), slp: MockERC20Param({ name: "Smooth Love Potion", symbol: "SLP" }), usdc: MockERC20Param({ name: "USD Coin", symbol: "USDC" }), test: UnitTestParam({ proxyAdmin: 0x399251E522341ef9791CfdC520caF8a89563ee90, operatorPKs: [89338892785005572287897341235069628097861401345577076384027374511660850657461 [8.933e76], 94291935571555911197469540623796976523702620179200967527175130350870576063980 [9.429e76], 66105842787854347706174987450235791373805460984806302077048451364001077277532 [6.61e76], 62139592644894956050512135403780103102340499689216530470315027870165852992480 [6.213e76], 26730799742766852067733297249950721399537296601340543341730795111646130922429 [2.673e76], 113233486732718915359374711713006098219786402783232076428732164185014040351031 [1.132e77]], governorPKs: [42130495768838953123449699907647043401609189235260698547160306600511619299692 [4.213e76], 403917326894831356924335699703306599620251154684925206401321994183394999420 [4.039e74], 56339438849551946521399288704068023525847000585964828640418712388045726980876 [5.633e76], 27604694287983472608131360737372851209735677770180426011553376648209901464447 [2.76e76], 104821485913365662130142988392886912637914151491318229463022685936103607433561 [1.048e77], 6590094224521758730518853749126478106862199057651219259336272091588099021235 [6.59e75]] }) }) - │ ├─ [3270] GeneralConfig::getSender() [staticcall] - │ │ └─ ← DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38] - │ ├─ [0] VM::getNonce(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38]) [staticcall] - │ │ └─ ← 4 - │ ├─ [3270] GeneralConfig::getSender() [staticcall] - │ │ └─ ← DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38] - │ ├─ [0] VM::broadcast() - │ │ └─ ← () - │ ├─ [0] VM::getCode("TransparentUpgradeableProxy.sol:TransparentUpgradeableProxy") [staticcall] - │ │ └─ ← 0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ec12be842bfcb61122d5b6339b7102392ff14c28176829b5fed43c54c70a9d5064736f6c63430008170033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564 - │ ├─ [688350] → new (31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]@0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496 - │ │ ├─ emit Upgraded(implementation: (31337)RoninGatewayV3::Logic[0x90193C961A926261B756D1E5bb255e67ff9498A1]: [0x90193C961A926261B756D1E5bb255e67ff9498A1]) - │ │ ├─ [222010] (31337)RoninGatewayV3::Logic[0x90193C961A926261B756D1E5bb255e67ff9498A1]::initialize(0x0000000000000000000000000000000000000000, 3, 6, 2, 3, [], [[0x0000000000000000000000000000000000000000], [0x0000000000000000000000000000000000000000]], [[1], [0]], [0]) [delegatecall] - │ │ │ ├─ emit RoleGranted(role: 0x0000000000000000000000000000000000000000000000000000000000000000, account: 0x0000000000000000000000000000000000000000, sender: DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38]) - │ │ │ ├─ emit ThresholdUpdated(nonce: 0, numerator: 3, denominator: 6, previousNumerator: 0, previousDenominator: 0) - │ │ │ ├─ emit TrustedThresholdUpdated(nonce: 1, numerator: 2, denominator: 3, previousNumerator: 3, previousDenominator: 6) - │ │ │ ├─ emit TokenMapped(roninTokens: [0x0000000000000000000000000000000000000000], mainchainTokens: [0x0000000000000000000000000000000000000000], chainIds: [1], standards: [0]) - │ │ │ ├─ emit MinimumThresholdsUpdated(tokens: [0x0000000000000000000000000000000000000000], threshold: [0]) - │ │ │ ├─ emit Initialized(version: 1) - │ │ │ └─ ← () - │ │ ├─ emit AdminChanged(previousAdmin: 0x0000000000000000000000000000000000000000, newAdmin: proxy-admin: [0x399251E522341ef9791CfdC520caF8a89563ee90]) - │ │ └─ ← 2068 bytes of code - │ ├─ [0] VM::load((31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496], 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103) [staticcall] - │ │ └─ ← 0x000000000000000000000000399251e522341ef9791cfdc520caf8a89563ee90 - │ ├─ [0] VM::getLabel((31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]) - │ │ └─ ← "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mRoninGatewayV3\u{1b}[0m[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]" - │ ├─ [0] VM::toString(proxy-admin: [0x399251E522341ef9791CfdC520caF8a89563ee90]) [staticcall] - │ │ └─ ← "0x399251E522341ef9791CfdC520caF8a89563ee90" - │ ├─ [0] VM::toString(proxy-admin: [0x399251E522341ef9791CfdC520caF8a89563ee90]) [staticcall] - │ │ └─ ← "0x399251E522341ef9791CfdC520caF8a89563ee90" - │ ├─ [1127] GeneralConfig::getCurrentNetwork() [staticcall] - │ │ └─ ← 0x054c6f63616c0000000000000000000000000000000000000000000000000000 - │ ├─ [17957] GeneralConfig::setAddress(0x054c6f63616c0000000000000000000000000000000000000000000000000000, 0x0e526f6e696e4761746577617956330000000000000000000000000000000000, (31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]) - │ │ ├─ [0] VM::toString(31337 [3.133e4]) [staticcall] - │ │ │ └─ ← "31337" - │ │ ├─ [0] VM::toString((31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]) [staticcall] - │ │ │ └─ ← "0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496" - │ │ ├─ [0] VM::label((31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496], "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mRoninGatewayV3\u{1b}[0m[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]") - │ │ │ └─ ← () - │ │ └─ ← () - │ ├─ [3270] GeneralConfig::getSender() [staticcall] - │ │ └─ ← DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38] - │ ├─ [19849] ArtifactFactory::generateArtifact(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38], (31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496], "TransparentUpgradeableProxy.sol:TransparentUpgradeableProxy", "RoninGatewayV3Proxy", 0x9584a5920000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, 4) - │ │ ├─ [1127] GeneralConfig::getCurrentNetwork() [staticcall] - │ │ │ └─ ← 0x054c6f63616c0000000000000000000000000000000000000000000000000000 - │ │ ├─ [2646] GeneralConfig::getExplorer(0x054c6f63616c0000000000000000000000000000000000000000000000000000) [staticcall] - │ │ │ └─ ← "" - │ │ ├─ [0] console::log("\u{1b}[92mRoninGatewayV3Proxy will be deployed at: address/0xa8452ec99ce0c64f20701db7dd3abdb607c00496\u{1b}[0m", "(nonce: 4)") [staticcall] - │ │ │ └─ ← () - │ │ ├─ [1210] GeneralConfig::getRuntimeConfig() [staticcall] - │ │ │ └─ ← Option({ log: false, trezor: false }) - │ │ ├─ [0] VM::getLabel((31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]) - │ │ │ └─ ← "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mRoninGatewayV3\u{1b}[0m[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]" - │ │ ├─ [0] console::log("Skipping artifact generation for:", "(\u{1b}[94m31337\u{1b}[0m)\u{1b}[93mRoninGatewayV3\u{1b}[0m[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]", "\n") [staticcall] - │ │ │ └─ ← () - │ │ └─ ← () - │ └─ ← (31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496] - ├─ [14422983] → new MainchainBridgeManagerDeploy@0x2e234DAe75C793f67A35089C9d99245E1C58470b - │ ├─ [1127] GeneralConfig::getCurrentNetwork() [staticcall] - │ │ └─ ← 0x054c6f63616c0000000000000000000000000000000000000000000000000000 - │ ├─ [1127] GeneralConfig::getCurrentNetwork() [staticcall] - │ │ └─ ← 0x054c6f63616c0000000000000000000000000000000000000000000000000000 - │ ├─ [1127] GeneralConfig::getCurrentNetwork() [staticcall] - │ │ └─ ← 0x054c6f63616c0000000000000000000000000000000000000000000000000000 - │ ├─ [0] VM::toString(1) [staticcall] - │ │ └─ ← "1" - │ ├─ [0] VM::addr(89338892785005572287897341235069628097861401345577076384027374511660850657461 [8.933e76]) [staticcall] - │ │ └─ ← operator-1: [0x7083C6a0F61B3FdC6a8f4Bb573F5097b485Cbb95] - │ ├─ [0] VM::label(operator-1: [0x7083C6a0F61B3FdC6a8f4Bb573F5097b485Cbb95], "operator-1") - │ │ └─ ← () - │ ├─ [0] VM::toString(1) [staticcall] - │ │ └─ ← "1" - │ ├─ [0] VM::addr(42130495768838953123449699907647043401609189235260698547160306600511619299692 [4.213e76]) [staticcall] - │ │ └─ ← governor-1: [0xbF91bFD887138C482101Bff998F4A96D41C5c430] - │ ├─ [0] VM::label(governor-1: [0xbF91bFD887138C482101Bff998F4A96D41C5c430], "governor-1") - │ │ └─ ← () - │ ├─ [0] VM::toString(2) [staticcall] - │ │ └─ ← "2" - │ ├─ [0] VM::addr(94291935571555911197469540623796976523702620179200967527175130350870576063980 [9.429e76]) [staticcall] - │ │ └─ ← operator-2: [0x10e09AaCfb9408a6da536d258d3d64718ab56E4D] - │ ├─ [0] VM::label(operator-2: [0x10e09AaCfb9408a6da536d258d3d64718ab56E4D], "operator-2") - │ │ └─ ← () - │ ├─ [0] VM::toString(2) [staticcall] - │ │ └─ ← "2" - │ ├─ [0] VM::addr(403917326894831356924335699703306599620251154684925206401321994183394999420 [4.039e74]) [staticcall] - │ │ └─ ← governor-2: [0x8856475Dd525166b6654eDd18e0011e592459a8E] - │ ├─ [0] VM::label(governor-2: [0x8856475Dd525166b6654eDd18e0011e592459a8E], "governor-2") - │ │ └─ ← () - │ ├─ [0] VM::toString(3) [staticcall] - │ │ └─ ← "3" - │ ├─ [0] VM::addr(66105842787854347706174987450235791373805460984806302077048451364001077277532 [6.61e76]) [staticcall] - │ │ └─ ← operator-3: [0x698beC9a526055cD092E9E15aCcCfC542b63f92D] - │ ├─ [0] VM::label(operator-3: [0x698beC9a526055cD092E9E15aCcCfC542b63f92D], "operator-3") - │ │ └─ ← () - │ ├─ [0] VM::toString(3) [staticcall] - │ │ └─ ← "3" - │ ├─ [0] VM::addr(56339438849551946521399288704068023525847000585964828640418712388045726980876 [5.633e76]) [staticcall] - │ │ └─ ← governor-3: [0xC966b8836E01dB8f720f0A169dA0252767b87454] - │ ├─ [0] VM::label(governor-3: [0xC966b8836E01dB8f720f0A169dA0252767b87454], "governor-3") - │ │ └─ ← () - │ ├─ [0] VM::toString(4) [staticcall] - │ │ └─ ← "4" - │ ├─ [0] VM::addr(62139592644894956050512135403780103102340499689216530470315027870165852992480 [6.213e76]) [staticcall] - │ │ └─ ← operator-4: [0x0D8274A6B3CDDB84e8FD4F8c93B4cfA26dBCb45D] - │ ├─ [0] VM::label(operator-4: [0x0D8274A6B3CDDB84e8FD4F8c93B4cfA26dBCb45D], "operator-4") - │ │ └─ ← () - │ ├─ [0] VM::toString(4) [staticcall] - │ │ └─ ← "4" - │ ├─ [0] VM::addr(27604694287983472608131360737372851209735677770180426011553376648209901464447 [2.76e76]) [staticcall] - │ │ └─ ← governor-4: [0x713886700F9F4b7dF033BD1615177684cEDCeee4] - │ ├─ [0] VM::label(governor-4: [0x713886700F9F4b7dF033BD1615177684cEDCeee4], "governor-4") - │ │ └─ ← () - │ ├─ [0] VM::toString(5) [staticcall] - │ │ └─ ← "5" - │ ├─ [0] VM::addr(26730799742766852067733297249950721399537296601340543341730795111646130922429 [2.673e76]) [staticcall] - │ │ └─ ← operator-5: [0xaf627C77b0b0ed13882b0FF7B10af7a610035A41] - │ ├─ [0] VM::label(operator-5: [0xaf627C77b0b0ed13882b0FF7B10af7a610035A41], "operator-5") - │ │ └─ ← () - │ ├─ [0] VM::toString(5) [staticcall] - │ │ └─ ← "5" - │ ├─ [0] VM::addr(104821485913365662130142988392886912637914151491318229463022685936103607433561 [1.048e77]) [staticcall] - │ │ └─ ← governor-5: [0xa131e33Ef51a90640F54291645BdcEE9De3D1c11] - │ ├─ [0] VM::label(governor-5: [0xa131e33Ef51a90640F54291645BdcEE9De3D1c11], "governor-5") - │ │ └─ ← () - │ ├─ [0] VM::toString(6) [staticcall] - │ │ └─ ← "6" - │ ├─ [0] VM::addr(113233486732718915359374711713006098219786402783232076428732164185014040351031 [1.132e77]) [staticcall] - │ │ └─ ← operator-6: [0xcCfCA9C1C0b543d21DC71C43dce7B174A7015Fb8] - │ ├─ [0] VM::label(operator-6: [0xcCfCA9C1C0b543d21DC71C43dce7B174A7015Fb8], "operator-6") - │ │ └─ ← () - │ ├─ [0] VM::toString(6) [staticcall] - │ │ └─ ← "6" - │ ├─ [0] VM::addr(6590094224521758730518853749126478106862199057651219259336272091588099021235 [6.59e75]) [staticcall] - │ │ └─ ← governor-6: [0x30949311D69Fa2eAE2b805A9905eb6D72a5B38a8] - │ ├─ [0] VM::label(governor-6: [0x30949311D69Fa2eAE2b805A9905eb6D72a5B38a8], "governor-6") - │ │ └─ ← () - │ ├─ [0] VM::addr(91510552187238886959033578665964256892121014792639911859038233360780899104770 [9.151e76]) [staticcall] - │ │ └─ ← governance-admin: [0x84850a90002c2edf9BFF8D3C296e9C9C0427CD9e] - │ ├─ [0] VM::label(governance-admin: [0x84850a90002c2edf9BFF8D3C296e9C9C0427CD9e], "governance-admin") - │ │ └─ ← () - │ ├─ [0] VM::addr(32023155812407028061452097301509641536118192107878305823158825758004472210926 [3.202e76]) [staticcall] - │ │ └─ ← validator-set-contract: [0x13492C1CaA270F0A24342015A049518CF093dD40] - │ ├─ [0] VM::label(validator-set-contract: [0x13492C1CaA270F0A24342015A049518CF093dD40], "validator-set-contract") - │ │ └─ ← () - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x0e526f6e696e4761746577617956330000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496] - │ ├─ [7326] GeneralConfig::getAddressFromCurrentNetwork(0x0c42726964676552657761726400000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)BridgeReward[0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351]: [0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351] - │ ├─ [7326] GeneralConfig::getAddressFromCurrentNetwork(0x0b427269646765536c6173680000000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)BridgeSlash[0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809]: [0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x0e427269646765547261636b696e670000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)BridgeTracking[0x50EEf481cae4250d252Ae577A09bF514f224C6C4]: [0x50EEf481cae4250d252Ae577A09bF514f224C6C4] - │ ├─ [0] VM::addr(67501766086945423188359301496192992873575530264346267663568933074015626216763 [6.75e76]) [staticcall] - │ │ └─ ← proxy-admin: [0x399251E522341ef9791CfdC520caF8a89563ee90] - │ ├─ [0] VM::label(proxy-admin: [0x399251E522341ef9791CfdC520caF8a89563ee90], "proxy-admin") - │ │ └─ ← () - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x12526f6e696e4272696467654d616e6167657200000000000000000000000000) [staticcall] - │ │ └─ ← (31337)RoninBridgeManager[0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3]: [0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x0e427269646765547261636b696e670000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)BridgeTracking[0x50EEf481cae4250d252Ae577A09bF514f224C6C4]: [0x50EEf481cae4250d252Ae577A09bF514f224C6C4] - │ ├─ [7326] GeneralConfig::getAddressFromCurrentNetwork(0x0b427269646765536c6173680000000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)BridgeSlash[0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809]: [0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x12526f6e696e4272696467654d616e6167657200000000000000000000000000) [staticcall] - │ │ └─ ← (31337)RoninBridgeManager[0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3]: [0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x0e427269646765547261636b696e670000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)BridgeTracking[0x50EEf481cae4250d252Ae577A09bF514f224C6C4]: [0x50EEf481cae4250d252Ae577A09bF514f224C6C4] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x0e526f6e696e4761746577617956330000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x0e526f6e696e4761746577617956330000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)RoninGatewayV3[0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496]: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496] - │ ├─ [7326] GeneralConfig::getAddressFromCurrentNetwork(0x0b427269646765536c6173680000000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)BridgeSlash[0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809]: [0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x124d61696e636861696e47617465776179563300000000000000000000000000) [staticcall] - │ │ └─ ← (31337)MainchainGatewayV3[0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB]: [0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB] - │ ├─ [7330] GeneralConfig::getAddressFromCurrentNetwork(0x124d61696e636861696e47617465776179563300000000000000000000000000) [staticcall] - │ │ └─ ← (31337)MainchainGatewayV3[0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB]: [0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB] - │ ├─ [7336] GeneralConfig::getAddressFromCurrentNetwork(0x0457455448000000000000000000000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)WETH[0x978e3286EB805934215a88694d80b09aDed68D90]: [0x978e3286EB805934215a88694d80b09aDed68D90] - │ ├─ [7336] GeneralConfig::getAddressFromCurrentNetwork(0x0455534443000000000000000000000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)USDC[0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6]: [0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6] - │ ├─ [7336] GeneralConfig::getAddressFromCurrentNetwork(0x0457455448000000000000000000000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)WETH[0x978e3286EB805934215a88694d80b09aDed68D90]: [0x978e3286EB805934215a88694d80b09aDed68D90] - │ ├─ [7336] GeneralConfig::getAddressFromCurrentNetwork(0x0455534443000000000000000000000000000000000000000000000000000000) [staticcall] - │ │ └─ ← (31337)USDC[0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6]: [0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6] - │ ├─ [2964] GeneralConfig::setRawSharedArguments(0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000013492c1caa270f0a24342015a049518cf093dd40000000000000000000000000bb2180ebd78ce97360503434ed37fcf4a1df61c300000000000000000000000050eef481cae4250d252ae577a09bf514f224c6c400000000000000000000000084850a90002c2edf9bff8d3c296e9c9c0427cd9e000000000000000000000000a8452ec99ce0c64f20701db7dd3abdb607c0049600000000000000000000000013492c1caa270f0a24342015a049518cf093dd400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bb2180ebd78ce97360503434ed37fcf4a1df61c300000000000000000000000050eef481cae4250d252ae577a09bf514f224c6c4000000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d7080900000000000000000000000013492c1caa270f0a24342015a049518cf093dd4000000000000000000000000084850a90002c2edf9bff8d3c296e9c9c0427cd9e000000000000000000000000000000000000000000000000000000000000138800000000000000000000000000000000000000000000000000000000000012800000000000000000000000000000000000000000000000000000000000001340000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000015800000000000000000000000000000000000000000000000000000000000001640000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d21060559c9beb54fc07afd6151adf6cfcddcaeb0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d21060559c9beb54fc07afd6151adf6cfcddcaeb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000978e3286eb805934215a88694d80b09aded68d900000000000000000000000000c8b5822b6e02cda722174f19a1439a7495a3fa60000000000000000000000000000000000000000000000000000000000000002000000000000000000000000978e3286eb805934215a88694d80b09aded68d900000000000000000000000000c8b5822b6e02cda722174f19a1439a7495a3fa60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000127500000000000000000000000000a8452ec99ce0c64f20701db7dd3abdb607c00496000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d7080900000000000000000000000000000000000000000000000000000000000000060000000000000000000000007083c6a0f61b3fdc6a8f4bb573f5097b485cbb9500000000000000000000000010e09aacfb9408a6da536d258d3d64718ab56e4d000000000000000000000000698bec9a526055cd092e9e15acccfc542b63f92d0000000000000000000000000d8274a6b3cddb84e8fd4f8c93b4cfa26dbcb45d000000000000000000000000af627c77b0b0ed13882b0ff7b10af7a610035a41000000000000000000000000ccfca9c1c0b543d21dc71c43dce7b174a7015fb80000000000000000000000000000000000000000000000000000000000000006000000000000000000000000bf91bfd887138c482101bff998f4a96d41c5c4300000000000000000000000008856475dd525166b6654edd18e0011e592459a8e000000000000000000000000c966b8836e01db8f720f0a169da0252767b87454000000000000000000000000713886700f9f4b7df033bd1615177684cedceee4000000000000000000000000a131e33ef51a90640f54291645bdcee9de3d1c1100000000000000000000000030949311d69fa2eae2b805a9905eb6d72a5b38a80000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000a8452ec99ce0c64f20701db7dd3abdb607c004960000000000000000000000004f559f30f5eb88d635fde1548c4267db8fab0351000000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d7080900000000000000000000000050eef481cae4250d252ae577a09bf514f224c6c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c57726170706564205745544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004574554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000b5772617070656420524f4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000457524f4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000134178696520496e66696e6974792053686172640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034158530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000012536d6f6f7468204c6f766520506f74696f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003534c50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000855534420436f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553444300000000000000000000000000000000000000000000000000000000000000000000000000000000399251e522341ef9791cfdc520caf8a89563ee90000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000006c584057a233113f3d6bbb9fa535457f882e4a1651e9872443fbbc09c98cab8b5d0775821d287000a7bcdf57179f0756bcea1e44933bc9b95e7437a24f89565ec922694c2a69e2569e7c38daf93226a6654bf3ab7f08a5bae2f0f3ba29b7c335c8961c3586584723ed2cf8ed4692507f7ccfa033d901aa56911770fa9ab4bb3e03b1918b42fc7ffb813c3827ed00534d936c7930115f3d65fab756c2e15b0e3bdfa57e1de87203668f02b950f40e1246963fa77677df934e74c97577520c1513700000000000000000000000000000000000000000000000000000000000000065d2503fc5f74f349f61fd45c72868b37a10b28a35052be8e3f15eb5d1f65796c00e49bee553750db35dc75dd0f611fc9ca1a950367e3c78244d9fbf66e643c7c7c8efe0b120312d5f846e2e27820676655285e2808b5e4e93580b1d5b5129b0c3d07b40a68891e1ce2246c87932f18ffd4c01876519808e339af84d9d65aab7fe7bedbcabd91f0b98becc732538ae35a6d72e3efc234a10b4383ae967d1af9590e91dc744fe301c24bac6970238cabaca15627df2414bf146a664dd0792399b3) - │ │ └─ ← () - │ └─ ← 69933 bytes of code - ├─ [450330] MainchainBridgeManagerDeploy::run() - │ ├─ [169710] GeneralConfig::sharedArguments() [staticcall] - │ │ └─ ← SharedParameter({ mainchainBridgeManager: BridgeManagerParam({ num: 70, denom: 100, roninChainId: 31337 [3.133e4], expiryDuration: 0, bridgeContract: 0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB, callbackRegisters: [], bridgeOperators: [], governors: [], voteWeights: [], targetOptions: [1], targets: [0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB] }), mainchainGatewayV3: MainchainGatewayV3Param({ roleSetter: 0x0000000000000000000000000000000000000000, wrappedToken: 0x0000000000000000000000000000000000000000, roninChainId: 0, numerator: 1, highTierVWNumerator: 10, denominator: 10, addresses: [[0x978e3286EB805934215a88694d80b09aDed68D90, 0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6], [0x978e3286EB805934215a88694d80b09aDed68D90, 0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6], []], thresholds: [[10, 0], [20, 0], [100000 [1e5], 0], [12, 0]], standards: [0, 0] }), roninBridgeManager: BridgeManagerParam({ num: 2, denom: 4, roninChainId: 0, expiryDuration: 1209600 [1.209e6], bridgeContract: 0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496, callbackRegisters: [0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809], bridgeOperators: [0x7083C6a0F61B3FdC6a8f4Bb573F5097b485Cbb95, 0x10e09AaCfb9408a6da536d258d3d64718ab56E4D, 0x698beC9a526055cD092E9E15aCcCfC542b63f92D, 0x0D8274A6B3CDDB84e8FD4F8c93B4cfA26dBCb45D, 0xaf627C77b0b0ed13882b0FF7B10af7a610035A41, 0xcCfCA9C1C0b543d21DC71C43dce7B174A7015Fb8], governors: [0xbF91bFD887138C482101Bff998F4A96D41C5c430, 0x8856475Dd525166b6654eDd18e0011e592459a8E, 0xC966b8836E01dB8f720f0A169dA0252767b87454, 0x713886700F9F4b7dF033BD1615177684cEDCeee4, 0xa131e33Ef51a90640F54291645BdcEE9De3D1c11, 0x30949311D69Fa2eAE2b805A9905eb6D72a5B38a8], voteWeights: [100, 100, 100, 100, 100, 100], targetOptions: [1, 2, 3, 4], targets: [0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496, 0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351, 0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809, 0x50EEf481cae4250d252Ae577A09bF514f224C6C4] }), roninGatewayV3: RoninGatewayV3Param({ roleSetter: 0x0000000000000000000000000000000000000000, numerator: 3, denominator: 6, trustedNumerator: 2, trustedDenominator: 3, withdrawalMigrators: [], packedAddresses: [[0x0000000000000000000000000000000000000000], [0x0000000000000000000000000000000000000000]], packedNumbers: [[1], [0]], standards: [0] }), bridgeSlash: BridgeSlashParam({ validatorContract: 0x13492C1CaA270F0A24342015A049518CF093dD40, bridgeManagerContract: 0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3, bridgeTrackingContract: 0x50EEf481cae4250d252Ae577A09bF514f224C6C4, dposGA: 0x84850a90002c2edf9BFF8D3C296e9C9C0427CD9e }), bridgeTracking: BridgeTrackingParam({ bridgeContract: 0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496, validatorContract: 0x13492C1CaA270F0A24342015A049518CF093dD40, startedAtBlock: 0 }), bridgeReward: BridgeRewardParam({ bridgeManagerContract: 0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3, bridgeTrackingContract: 0x50EEf481cae4250d252Ae577A09bF514f224C6C4, bridgeSlashContract: 0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809, validatorSetContract: 0x13492C1CaA270F0A24342015A049518CF093dD40, dposGA: 0x84850a90002c2edf9BFF8D3C296e9C9C0427CD9e, rewardPerPeriod: 5000 }), weth: MockWrappedTokenParam({ name: "Wrapped WETH", symbol: "WETH" }), wron: MockWrappedTokenParam({ name: "Wrapped RON", symbol: "WRON" }), axs: MockERC20Param({ name: "Axie Infinity Shard", symbol: "AXS" }), slp: MockERC20Param({ name: "Smooth Love Potion", symbol: "SLP" }), usdc: MockERC20Param({ name: "USD Coin", symbol: "USDC" }), test: UnitTestParam({ proxyAdmin: 0x399251E522341ef9791CfdC520caF8a89563ee90, operatorPKs: [89338892785005572287897341235069628097861401345577076384027374511660850657461 [8.933e76], 94291935571555911197469540623796976523702620179200967527175130350870576063980 [9.429e76], 66105842787854347706174987450235791373805460984806302077048451364001077277532 [6.61e76], 62139592644894956050512135403780103102340499689216530470315027870165852992480 [6.213e76], 26730799742766852067733297249950721399537296601340543341730795111646130922429 [2.673e76], 113233486732718915359374711713006098219786402783232076428732164185014040351031 [1.132e77]], governorPKs: [42130495768838953123449699907647043401609189235260698547160306600511619299692 [4.213e76], 403917326894831356924335699703306599620251154684925206401321994183394999420 [4.039e74], 56339438849551946521399288704068023525847000585964828640418712388045726980876 [5.633e76], 27604694287983472608131360737372851209735677770180426011553376648209901464447 [2.76e76], 104821485913365662130142988392886912637914151491318229463022685936103607433561 [1.048e77], 6590094224521758730518853749126478106862199057651219259336272091588099021235 [6.59e75]] }) }) - │ ├─ [0] console::log("> ", "\u{1b}[94m_deployImmutable RoninBridgeManager\u{1b}[0m", "...") [staticcall] - │ │ └─ ← () - │ ├─ [5409] GeneralConfig::getContractName(0x12526f6e696e4272696467654d616e6167657200000000000000000000000000) [staticcall] - │ │ └─ ← "RoninBridgeManager" - │ ├─ [3855] GeneralConfig::getContractAbsolutePath(0x12526f6e696e4272696467654d616e6167657200000000000000000000000000) [staticcall] - │ │ └─ ← "RoninBridgeManager.sol" - │ ├─ [3270] GeneralConfig::getSender() [staticcall] - │ │ └─ ← DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38] - │ ├─ [0] VM::getNonce(DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38]) [staticcall] - │ │ └─ ← 5 - │ ├─ [3270] GeneralConfig::getSender() [staticcall] - │ │ └─ ← DefaultSender: [0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38] - │ ├─ [0] VM::broadcast() - │ │ └─ ← () - │ ├─ [0] VM::getCode("RoninBridgeManager.sol") [staticcall] - │ │ └─ ← 0x60a060405260405162007a4d38038062007a4d833981016040819052620000269162001520565b8181898d8d8d8c8c8c8c8c836200003d81620001a0565b5050600160008051602062007a2d833981519152556200005e8888620002af565b506200006e9050600286620003c4565b604080516020808201839052600c60608301526b212924a223a2afa0a226a4a760a11b6080808401919091528284018a905283518084038201815260a0840185528051908301207f599a80fcaa47b95e2323ab4d34d34e0cc9feda4b843edafcc30c7bdf60ea15bf60c08501527f9d3fa1662ea89365eb7af36506f0ad5413bd7e078960d8481ff4718763aaa8e960e08501527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5610100850152610120808501919091528451808503909101815261014090930190935281519101209052620001598183856200046e565b50505050505050505062000173816200088e60201b60201c565b5062000181600030620008c1565b6200018d82826200095d565b505050505050505050505050506200199c565b606081620001ae8162000a20565b8251806001600160401b03811115620001cb57620001cb62001331565b604051908082528060200260200182016040528015620001f5578160200160208202803683370190505b50925080600003620002085750620002a9565b600080516020620079ed83398151915260006314d72edb60e21b815b84811015620002a3578781815181106200024257620002426200168c565b602002602001015192506200025d8362000a5c60201b60201c565b62000269838362000a94565b62000275848462000c73565b8782815181106200028a576200028a6200168c565b9115156020928302919091019091015260010162000224565b50505050505b50919050565b60008082841115620002e7576040516387f6f09560e01b81526001600160e01b03196000351660048201526024015b60405180910390fd5b60008051602062007a0d833981519152549150620003237fac1ff16a4f04f2a37a9ba5252a69baa100b460e517d1f8019c054a5ad698f9ff5490565b90506200033e60008051602062007a0d833981519152859055565b620003687fac1ff16a4f04f2a37a9ba5252a69baa100b460e517d1f8019c054a5ad698f9ff849055565b82846200038460008051602062007a2d83398151915262000c93565b60408051868152602081018690527f976f8a9c5bdf8248dec172376d6e2b80a8e3df2f0328e381c6db8e1cf138c0f8910160405180910390a49250929050565b807fdea3103d22025c269050bea94c0c84688877f12fa22b7e6d2d5d78a9a49aa1cb600084600f811115620003fd57620003fd620016a2565b60ff168152602081019190915260400160002080546001600160a01b0319166001600160a01b03928316179055811682600f811115620004415762000441620016a2565b6040517f865d1c228a8ea13709cfe61f346f7ff67f1bbd4a18ff31ad3e7147350d317c5990600090a35050565b60606200047c838362000cbb565b620004878162000a20565b82518551811480156200049a5750845181145b620004c7576040516306b5667560e21b81526001600160e01b0319600035166004820152602401620002de565b806001600160401b03811115620004e257620004e262001331565b6040519080825280602002602001820160405280156200050c578160200160208202803683370190505b509250806000036200051f575062000886565b604080518082019091526000808252602082018190527f546f6b46ab35b030b6816596b352aef78857377176c8b24baa2046a62cf1998c917f8400683eb2cb350596d73644c0c89fe45f108600003457374f4ab3e87b4f3aa3917fd38c234075fde25875da8a6b7e36b58b86681d483271a99eeeee1d78e258a24d917f88547008e60f5748911f2e59feb3093b7e4c2e87b2dd69d61f112fcc932de8e3919081908190815b89811015620007d8578d8181518110620005e257620005e26200168c565b602002602001015194508c81815181106200060157620006016200168c565b602002602001015193506200061c8562000dd960201b60201c565b620006278462000dd9565b8e81815181106200063c576200063c6200168c565b60200260200101516001600160601b03166000036200067d57604051637f11b8a360e11b81526001600160e01b0319600035166004820152602401620002de565b62000689898662000e10565b806200069c57506200069c898562000e10565b80620006af5750620006af878662000e10565b80620006c25750620006c2878562000e10565b158c8281518110620006d857620006d86200168c565b6020026020010190151590811515815250508b8181518110620006ff57620006ff6200168c565b602002602001015115620007cf5762000719898662000c73565b5062000726878562000c73565b506001600160a01b03848116600081815260208b90526040902080546001600160a01b0319169288169290921790915582528e518f90829081106200076f576200076f6200168c565b6020908102919091018101516001600160601b0316908301819052620007969084620016b8565b6001600160a01b038087166000908152602089815260409091208551918601516001600160601b0316600160a01b029190921617905592505b600101620005c4565b50620008057f6924fe71b0c8b61aea02ca498b5f53b29bd95726278b1fe4eb791bb24a42644c8362000e33565b506200083d635ebae8a060e01b8d8d6040516020016200082792919062001756565b60408051601f1981840301815291905262000e4d565b7f897810999654e525e272b5909785c4d0ceaee1bbf9c87d9091a37558b0423b788b8f8f8f60405162000874949392919062001788565b60405180910390a15050505050505050505b509392505050565b600281905560405181907fe5cd1c123a8cf63fa1b7229678db61fe8ae99dbbd27889370b6667c8cae97da190600090a250565b8060036000846004811115620008db57620008db620016a2565b6004811115620008ef57620008ef620016a2565b8152602081019190915260400160002080546001600160a01b0319166001600160a01b039283161790558116826004811115620009305762000930620016a2565b6040517f356c8c57e9e84b99b1cb58b13c985b2c979f78cbdf4d0fa70fe2a98bb09a099d90600090a35050565b60005b825181101562000a1b57306001600160a01b03168282815181106200098957620009896200168c565b60200260200101516001600160a01b031603620009c85760405163053265f160e01b81526001600160e01b0319600035166004820152602401620002de565b62000a12838281518110620009e157620009e16200168c565b6020026020010151838381518110620009fe57620009fe6200168c565b6020026020010151620008c160201b60201c565b60010162000960565b505050565b62000a2b8162001188565b1562000a5957604051630d697db160e11b81526001600160e01b0319600035166004820152602401620002de565b50565b806001600160a01b03163b60000362000a5957604051630bfc64a360e21b81526001600160a01b0382166004820152602401620002de565b6040516001600160e01b03198216602482015260009060440160408051601f198184030181529181526020820180516001600160e01b03166301ffc9a760e01b1790525190915060009081906001600160a01b0386169062000af89085906200183e565b600060405180830381855afa9150503d806000811462000b35576040519150601f19603f3d011682016040523d82523d6000602084013e62000b3a565b606091505b50915091508162000c1c57846001600160a01b03168360405160240162000b6291906200188a565b60408051601f198184030181529181526020820180516001600160e01b03166325da93a560e11b1790525162000b9991906200183e565b600060405180830381855afa9150503d806000811462000bd6576040519150601f19603f3d011682016040523d82523d6000602084013e62000bdb565b606091505b5090925090508162000c1c5760405163069d427960e11b81526001600160e01b0319851660048201526001600160a01b0386166024820152604401620002de565b8080602001905181019062000c3291906200189f565b62000c6c5760405163069d427960e11b81526001600160e01b0319851660048201526001600160a01b0386166024820152604401620002de565b5050505050565b600062000c8a836001600160a01b03841662001233565b90505b92915050565b600062000c9e825490565b905062000cb68262000cb2836001620016b8565b9055565b919050565b81518151606091908082016001600160401b0381111562000ce05762000ce062001331565b60405190808252806020026020018201604052801562000d0a578160200160208202803683370190505b50925060005b8281101562000d6c5785818151811062000d2e5762000d2e6200168c565b602002602001015184828151811062000d4b5762000d4b6200168c565b6001600160a01b039092166020928302919091019091015260010162000d10565b60005b8281101562000dcf5785818151811062000d8d5762000d8d6200168c565b602002602001015185838151811062000daa5762000daa6200168c565b6001600160a01b03909216602092830291909101909101526001918201910162000d6f565b5050505092915050565b6001600160a01b03811662000a595760405163104c66df60e31b81526001600160e01b0319600035166004820152602401620002de565b6001600160a01b0381166000908152600183016020526040812054151562000c8a565b600062000c8d8362000e46818562001285565b9250829055565b600062000e69600080516020620079ed833981519152620012a5565b8051909150600081900362000e7e5750505050565b6000816001600160401b0381111562000e9b5762000e9b62001331565b60405190808252806020026020018201604052801562000ec5578160200160208202803683370190505b5090506000826001600160401b0381111562000ee55762000ee562001331565b60405190808252806020026020018201604052801562000f1a57816020015b606081526020019060019003908162000f045790505b5090506000868660405160200162000f34929190620018c3565b604051602081830303815290604052905060008160405160240162000f5a91906200188a565b60408051601f198184030181529190526020810180516001600160e01b03166325da93a560e11b179052905060005b858110156200113e5786818151811062000fa75762000fa76200168c565b60200260200101516001600160a01b03168360405162000fc891906200183e565b6000604051808303816000865af19150503d806000811462001007576040519150601f19603f3d011682016040523d82523d6000602084013e6200100c565b606091505b508683815181106200102257620010226200168c565b602002602001018684815181106200103e576200103e6200168c565b60200260200101829052821515151581525050508481815181106200106757620010676200168c565b602002602001015162001135578681815181106200108957620010896200168c565b60200260200101516001600160a01b031682604051620010aa91906200183e565b6000604051808303816000865af19150503d8060008114620010e9576040519150601f19603f3d011682016040523d82523d6000602084013e620010ee565b606091505b508683815181106200110457620011046200168c565b602002602001018684815181106200112057620011206200168c565b60200260200101829052821515151581525050505b60010162000f89565b507fc0b07a27e66788f39cc91405f012f34066b16f31b4bda9438c52f2dae0cc5b6382878686604051620011769493929190620018f6565b60405180910390a15050505050505050565b600081516000036200119c57506000919050565b60005b60018351038110156200122a57600181015b83518110156200122057838181518110620011d057620011d06200168c565b60200260200101516001600160a01b0316848381518110620011f657620011f66200168c565b60200260200101516001600160a01b03160362001217575060019392505050565b600101620011b1565b506001016200119f565b50600092915050565b60008181526001830160205260408120546200127c5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000c8d565b50600062000c8d565b815481018181101562000c8d57634e487b7160005260116020526024601cfd5b60606000620012b483620012bb565b9392505050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156200130d57602002820191906000526020600020905b815481526020019060010190808311620012f8575b50505050509050919050565b80516001600160a01b038116811462000cb657600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562001372576200137262001331565b604052919050565b60006001600160401b0382111562001396576200139662001331565b5060051b60200190565b600082601f830112620013b257600080fd5b81516020620013cb620013c5836200137a565b62001347565b8083825260208201915060208460051b870101935086841115620013ee57600080fd5b602086015b848110156200141557620014078162001319565b8352918301918301620013f3565b509695505050505050565b600082601f8301126200143257600080fd5b8151602062001445620013c5836200137a565b8083825260208201915060208460051b8701019350868411156200146857600080fd5b602086015b84811015620014155780516001600160601b03811681146200148f5760008081fd5b83529183019183016200146d565b600082601f830112620014af57600080fd5b81516020620014c2620013c5836200137a565b80838252602082019150600560208560051b880101945087851115620014e757600080fd5b602087015b8581101562001513578051828110620015055760008081fd5b8452928401928401620014ec565b5090979650505050505050565b60008060008060008060008060008060006101608c8e0312156200154357600080fd5b8b519a5060208c0151995060408c0151985060608c015197506200156a60808d0162001319565b60a08d01519097506001600160401b038111156200158757600080fd5b620015958e828f01620013a0565b60c08e015190975090506001600160401b03811115620015b457600080fd5b620015c28e828f01620013a0565b60e08e015190965090506001600160401b03811115620015e157600080fd5b620015ef8e828f01620013a0565b6101008e015190955090506001600160401b038111156200160f57600080fd5b6200161d8e828f0162001420565b6101208e015190945090506001600160401b038111156200163d57600080fd5b6200164b8e828f016200149d565b6101408e015190935090506001600160401b038111156200166b57600080fd5b620016798e828f01620013a0565b9150509295989b509295989b9093969950565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b8082018082111562000c8d57634e487b7160e01b600052601160045260246000fd5b60008151808452602080850194506020840160005b83811015620017165781516001600160a01b031687529582019590820190600101620016ef565b509495945050505050565b60008151808452602080850194506020840160005b838110156200171657815115158752958201959082019060010162001736565b6040815260006200176b6040830185620016da565b82810360208401526200177f818562001721565b95945050505050565b6080815260006200179d608083018762001721565b82810360208481019190915286518083528782019282019060005b81811015620017df5784516001600160601b031683529383019391830191600101620017b8565b50508481036040860152620017f58188620016da565b9250505082810360608401526200180d8185620016da565b979650505050505050565b60005b83811015620018355781810151838201526020016200181b565b50506000910152565b600082516200185281846020870162001818565b9190910192915050565b600081518084526200187681602086016020860162001818565b601f01601f19169290920160200192915050565b60208152600062000c8a60208301846200185c565b600060208284031215620018b257600080fd5b81518015158114620012b457600080fd5b6001600160e01b0319831681528151600090620018e881600485016020870162001818565b919091016004019392505050565b6080815260006200190b60808301876200185c565b602083820381850152620019208288620016da565b9150838203604085015262001936828762001721565b915083820360608501528185518084528284019150828160051b85010183880160005b838110156200198b57601f19878403018552620019788383516200185c565b9486019492509085019060010162001959565b50909b9a5050505050505050505050565b608051616019620019d4600039600081816103c5015281816106ba015281816108da015281816109db015261121801526160196000f3fe608060405234801561001057600080fd5b50600436106102685760003560e01c80639a7d338211610151578063c441c4a8116100c3578063de981f1b11610087578063de981f1b14610633578063e75235b81461065e578063e9c0349814610666578063f80b535214610679578063fb4f637114610681578063fdc4fa471461069457600080fd5b8063c441c4a8146105ce578063cc7e6b3b146105e5578063d0a50db014610605578063d78392f81461060d578063dafae4081461062057600080fd5b8063b384abef11610115578063b384abef1461050a578063b405aaf214610565578063b9c3620914610578578063bc4e068f146105a0578063bc9182fd146105b3578063bc96180b146105c657600080fd5b80639a7d3382146104b65780639b19dbfd146104c95780639b2ee437146104d1578063a1819f9a146104e4578063a8a0e32c146104f757600080fd5b80632d6d7d73116101ea578063663ac011116101ae578063663ac011146103e75780637de5dedd146103fa578063800eaab314610402578063828fc1a114610415578063865e6fd314610428578063901979d51461043b57600080fd5b80632d6d7d73146103675780632faf925d1461037a57806334d5f37b1461038d57806335da8121146103ad5780633644e515146103c057600080fd5b80630b881830116102315780630b881830146102e75780630f7c3189146102fa5780631c905e391461030f5780631f425338146103315780632c5e65201461034457600080fd5b80624054b81461026d57806301a5f43f1461028257806306aba0e1146102ab57806309fcd8c7146102c15780630a44fa43146102d4575b600080fd5b61028061027b366004614b75565b6106a7565b005b610295610290366004614c09565b6106e6565b6040516102a29190614ce0565b60405180910390f35b6102b3610799565b6040519081526020016102a2565b6102806102cf366004614cf3565b6107b6565b6102b36102e2366004614dc2565b61084b565b6102806102f5366004614b75565b6108d0565b6103026108fe565b6040516102a29190614e3d565b61032261031d366004614e50565b610917565b6040516102a293929190614e9c565b61029561033f366004614dc2565b610933565b610357610352366004614f66565b610980565b60405190151581526020016102a2565b610302610375366004614dc2565b61098d565b610280610388366004614f9b565b6109d1565b6102b361039b366004614ff4565b60006020819052908152604090205481565b6102956103bb366004614dc2565b6109ff565b6102b37f000000000000000000000000000000000000000000000000000000000000000081565b6102806103f536600461501c565b610a45565b6102b3610b32565b61028061041036600461529d565b610bae565b610357610423366004615300565b610bf3565b61028061043636600461533b565b610c01565b61049e610449366004615365565b6001600160a01b039081166000908152600080516020615f8483398151915260209081526040808320549093168252600080516020615f6483398151915290522054600160a01b90046001600160601b031690565b6040516001600160601b0390911681526020016102a2565b6102806104c4366004614e50565b610c1c565b610302610c68565b6102806104df366004615365565b610c72565b6102806104f2366004615380565b610e09565b610280610505366004615459565b610ed0565b610554610518366004614e50565b600160208181526000938452604080852090915291835291208054918101546002820154600383015460069093015460ff909416939192909185565b6040516102a29594939291906154ad565b610357610573366004615365565b610eec565b61058b610586366004614e50565b610f06565b604080519283526020830191909152016102a2565b6103226105ae366004614ff4565b610f27565b6103026105c13660046154db565b610f44565b6102b3611035565b6105d6611040565b6040516102a293929190615549565b6105f86105f3366004614dc2565b61106a565b6040516102a2919061558c565b6102b36110a8565b61049e61061b366004615365565b6110c1565b61035761062e366004614ff4565b6110cc565b61064661064136600461559f565b611109565b6040516001600160a01b0390911681526020016102a2565b61058b611184565b610295610674366004614dc2565b6111b5565b6103026111fb565b61028061068f366004614f9b565b611205565b6103026106a2366004614dc2565b611245565b6106b03361132c565b6106df85858585857f000000000000000000000000000000000000000000000000000000000000000033611371565b5050505050565b60606106f0611416565b61078e87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808b0282810182019093528a82529093508a92508991829185019084908082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525061144692505050565b979650505050505050565b60006107b1600080516020615fc48339815191525490565b905090565b6107bf3361132c565b61084089898989898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061080592508a91508b9050615685565b8787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503392506117c2915050565b505050505050505050565b600082828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061088c925083915061191f9050565b6108c884848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061195492505050565b949350505050565b6106df85858585857f00000000000000000000000000000000000000000000000000000000000000006119d8565b60606107b1600080516020615f04833981519152611a8c565b60608060606109268585611a99565b9250925092509250925092565b606061093d611416565b610979838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611e8292505050565b9392505050565b60006108c8848484611f4d565b606061097983838080602002602001604051908101604052809392919081815260200183836020028082843760009201829052509250611f83915050565b92915050565b6106df85858585857f00000000000000000000000000000000000000000000000000000000000000006120dd565b6060610a09611416565b61097983838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061220092505050565b610a4e3361132c565b60003390506000610b17468d8d8d80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508c8c80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610adc92508d91508e9050615685565b8a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508b92506122f2915050565b9050610b24828285612401565b505050505050505050505050565b6000610b4a600080516020615f248339815191525490565b6001610b62600080516020615f248339815191525490565b610b90610b7b600080516020615fc48339815191525490565b600080516020615f4483398151915290612517565b610b9a91906156a8565b610ba491906156bb565b6107b191906156ce565b333014610be5576000356001600160e01b0319166040516307337e1960e41b8152600401610bdc91906156f0565b60405180910390fd5b610bef8282612542565b5050565b600061097960008484611f4d565b610c09611416565b610c12816125f0565b610bef8282612626565b6000828152600160208181526040808420858552909152822090810154909103610c595760405163713b099760e11b815260040160405180910390fd5b610c62816126ca565b50505050565b60606107b16128df565b610c7b3361132c565b610c84816128f8565b336000908152600080516020615f6483398151915260208190526040909120546001600160a01b039081169083168103610cdc57604051630669b93360e31b81526001600160a01b0384166004820152602401610bdc565b600080516020615fa48339815191526000610cf7828461292d565b8015610d085750610d088286612942565b905080610d335760405163080fab4b60e31b81526001600160a01b0386166004820152602401610bdc565b6001600160a01b038381166000818152600080516020615f848339815191526020818152604080842080546001600160a01b0319908116909155958b16808552818520805488163390811790915585528a8352938190208054909616841790955584519081019390935292820152610dc6906364b18d0960e11b906060015b604051602081830303815290604052612957565b6040516001600160a01b03808816919086169033907fcef34cd748f30a1b7a2f214fd1651779f79bc6c1be02785cad5c1f0ee877213d90600090a4505050505050565b610e123361132c565b610ec38a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c918291850190849080828437600092019190915250610e8892508a91508b9050615685565b8787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503392506122f2915050565b5050505050505050505050565b610ed93361132c565b610bef33610ee684615784565b83612401565b60006109cb600080516020615fa483398151915283612c5f565b600080610f11611416565b610f1b8484612c81565b915091505b9250929050565b6060806060610f37600085611a99565b9250925092509193909250565b8051606090806001600160401b03811115610f6157610f616150f9565b604051908082528060200260200182016040528015610f8a578160200160208202803683370190505b509150600080516020615f6483398151915260005b8281101561102d57816000868381518110610fbc57610fbc615858565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160009054906101000a90046001600160a01b031684828151811061100d5761100d615858565b6001600160a01b0390921660209283029190910190910152600101610f9f565b505050919050565b60006107b160025490565b606080606061104d612d76565b925061105883610f44565b915061106383612da1565b9050909192565b6060610979838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612da192505050565b60006107b1600080516020615fa4833981519152612e8a565b60006109cb82612e94565b60006110e7610b7b600080516020615fc48339815191525490565b600080516020615f2483398151915254611101908461586e565b101592915050565b60007fdea3103d22025c269050bea94c0c84688877f12fa22b7e6d2d5d78a9a49aa1cb600083600f81111561114057611140614e72565b60ff1681526020810191909152604001600020546001600160a01b031690508061117f578160405163409140df60e11b8152600401610bdc9190615885565b919050565b60008061119d600080516020615f448339815191525490565b600080516020615f2483398151915254915091509091565b60606111bf611416565b610979838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612ecc92505050565b60606107b1612d76565b61120e3361132c565b61123d85858585857f0000000000000000000000000000000000000000000000000000000000000000336131b1565b505050505050565b606081806001600160401b03811115611260576112606150f9565b604051908082528060200260200182016040528015611289578160200160208202803683370190505b509150600080516020615f8483398151915260005b82811015611323578160008787848181106112bb576112bb615858565b90506020020160208101906112d09190615365565b6001600160a01b039081168252602082019290925260400160002054855191169085908390811061130357611303615858565b6001600160a01b039092166020928302919091019091015260010161129e565b50505092915050565b61133581612e94565b6001600160601b031660000361136e576000356001600160e01b0319166003604051620f948f60ea1b8152600401610bdc92919061589f565b50565b61138361137d88615784565b82613200565b50600061139761139289615784565b6132ff565b905061140c6113a589615784565b888888886113f8896113b889600061343e565b60405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6114078a6113b88a600161343e565b613477565b5050505050505050565b333014611444576000356001600160e01b0319166040516307337e1960e41b8152600401610bdc91906156f0565b565b606061145283836136dc565b61145b8161191f565b825185518114801561146d5750845181145b611498576000356001600160e01b0319166040516306b5667560e21b8152600401610bdc91906156f0565b806001600160401b038111156114b0576114b06150f9565b6040519080825280602002602001820160405280156114d9578160200160208202803683370190505b509250806000036114ea57506117ba565b604080518082019091526000808252602082018190527f546f6b46ab35b030b6816596b352aef78857377176c8b24baa2046a62cf1998c91600080516020615f8483398151915291600080516020615fa483398151915291600080516020615f64833981519152919081908190815b8981101561173b578d818151811061157357611573615858565b602002602001015194508c818151811061158f5761158f615858565b602002602001015193506115a2856128f8565b6115ab846128f8565b8e81815181106115bd576115bd615858565b60200260200101516001600160601b03166000036115fc576000356001600160e01b031916604051637f11b8a360e11b8152600401610bdc91906156f0565b6116068986612c5f565b8061161657506116168985612c5f565b8061162657506116268786612c5f565b8061163657506116368785612c5f565b158c828151811061164957611649615858565b6020026020010190151590811515815250508b818151811061166d5761166d615858565b602002602001015115611733576116848986612942565b5061168f8785612942565b506001600160a01b03848116600081815260208b90526040902080546001600160a01b0319169288169290921790915582528e518f90829081106116d5576116d5615858565b6020908102919091018101516001600160601b03169083018190526116fa90846156a8565b6001600160a01b038087166000908152602089815260409091208551918601516001600160601b0316600160a01b029190921617905592505b600101611559565b50611754600080516020615fc4833981519152836137e6565b50611773635ebae8a060e01b8d8d604051602001610db29291906158cd565b7f897810999654e525e272b5909785c4d0ceaee1bbf9c87d9091a37558b0423b788b8f8f8f6040516117a894939291906158fb565b60405180910390a15050505050505050505b509392505050565b60006117ce60006137fd565b905060006040518060c001604052808381526020018a8152602001898980806020026020016040519081016040528093929190818152602001838360200280828437600092018290525093855250505060208083018a905260408084018a9052606090930188905282518b820281810183019094528b8152939450909261187f92611878928d918d9182919085019084908082843760009201919091525060019250611f83915050565b83906138ad565b90506118966002548261399f90919063ffffffff16565b60006118a1826132ff565b6000858152600080516020615ee483398151915260205260409020600181018290556006018c9055905080847f771d78ae9e5fca95a532fb0971d575d0ce9b59d14823c063e08740137e0e0eca846118f887613a40565b878a60405161190a9493929190615a96565b60405180910390a35050505050505050505050565b61192881613b77565b1561136e576000356001600160e01b031916604051630d697db160e11b8152600401610bdc91906156f0565b6000816119608161191f565b600080516020615f6483398151915260005b845181101561102d5781600086838151811061199057611990615858565b6020908102919091018101516001600160a01b03168252810191909152604001600020546119ce90600160a01b90046001600160601b0316856156a8565b9350600101611972565b60006119e661139288615784565b6020808901356000908152600180835260408083208c35845290935291902001549091508114611a55576020808801356000908152600180835260408083208b3584529093529082902001549051632bee7fdb60e21b8152610bdc918391600401918252602082015260400190565b611a83611a6188615784565b87878787611a74886113b889600061343e565b611407896113b88a600161343e565b50505050505050565b6060600061097983613c16565b60008281526001602090815260408083208484529091528120600481015460058201546060938493849390929091611ad182846156a8565b9050806001600160401b03811115611aeb57611aeb6150f9565b604051908082528060200260200182016040528015611b14578160200160208202803683370190505b509550806001600160401b03811115611b2f57611b2f6150f9565b604051908082528060200260200182016040528015611b7a57816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181611b4d5790505b509450806001600160401b03811115611b9557611b956150f9565b604051908082528060200260200182016040528015611bbe578160200160208202803683370190505b50965060005b83811015611d13576000878281518110611be057611be0615858565b60200260200101906001811115611bf957611bf9614e72565b90816001811115611c0c57611c0c614e72565b90525060008a81526001602090815260408083208c845290915281206004870180546007909201929184908110611c4557611c45615858565b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815460ff16815260018201549381019390935260020154908201528651879083908110611ca357611ca3615858565b6020026020010181905250846004018181548110611cc357611cc3615858565b9060005260206000200160009054906101000a90046001600160a01b0316888281518110611cf357611cf3615858565b6001600160a01b0390921660209283029190910190910152600101611bc4565b5060005b82811015611e7657600187611d2c86846156a8565b81518110611d3c57611d3c615858565b60200260200101906001811115611d5557611d55614e72565b90816001811115611d6857611d68614e72565b90525060008a81526001602090815260408083208c845290915281206005870180546007909201929184908110611da157611da1615858565b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815460ff168152600182015493810193909352600201549082015286611df686846156a8565b81518110611e0657611e06615858565b6020026020010181905250846005018181548110611e2657611e26615858565b6000918252602090912001546001600160a01b031688611e4686846156a8565b81518110611e5657611e56615858565b6001600160a01b0390921660209283029190910190910152600101611d17565b50505050509250925092565b606081611e8e8161191f565b8251806001600160401b03811115611ea857611ea86150f9565b604051908082528060200260200182016040528015611ed1578160200160208202803683370190505b509250600080516020615f0483398151915260005b82811015611f4457611f1a868281518110611f0357611f03615858565b60200260200101518361292d90919063ffffffff16565b858281518110611f2c57611f2c615858565b91151560209283029190910190910152600101611ee6565b50505050919050565b600083815260016020908152604080832085845282528083206001600160a01b038516845260080190915281205460ff166108c8565b606082516001600160401b03811115611f9e57611f9e6150f9565b604051908082528060200260200182016040528015611fc7578160200160208202803683370190505b50905060005b83518110156120d65760036000858381518110611fec57611fec615858565b6020026020010151600481111561200557612005614e72565b600481111561201657612016614e72565b815260200190815260200160002060009054906101000a90046001600160a01b031682828151811061204a5761204a615858565b60200260200101906001600160a01b031690816001600160a01b0316815250508280156120a2575060006001600160a01b031682828151811061208f5761208f615858565b60200260200101516001600160a01b0316145b156120ce576000356001600160e01b03191660405163053265f160e01b8152600401610bdc91906156f0565b600101611fcd565b5092915050565b600061213b61212c6120f260408a018a615b7d565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525060019250611f83915050565b61213589615bc6565b906138ad565b90506000612148826132ff565b60008080526001602081815285518352600080516020615ee483398151915290526040909120015490915081146121c55760008080526001602081815284518352600080516020615ee4833981519152905260409182902001549051632bee7fdb60e21b8152610bdc918391600401918252602082015260400190565b60006121d86121d38a615bc6565b613a40565b905061084083898989896121f18a6113b889600061343e565b6114078b6113b88a600161343e565b60608161220c8161191f565b8251806001600160401b03811115612226576122266150f9565b60405190808252806020026020018201604052801561224f578160200160208202803683370190505b5092508060000361226057506122ec565b600080516020615f0483398151915260006314d72edb60e21b815b848110156122e65787818151811061229557612295615858565b602002602001015192506122a8836125f0565b6122b28383613c72565b6122bc8484612942565b8782815181106122ce576122ce615858565b9115156020928302919091019091015260010161227b565b50505050505b50919050565b6122fa614a6c565b8760000361232e576000356001600160e01b03191660004660405163092048d160e11b8152600401610bdc93929190615c90565b6000612339896137fd565b90506040518060e001604052808281526020018a81526020018981526020018881526020018781526020018681526020018581525091506123856002548361399f90919063ffffffff16565b6000612390836132ff565b60008b81526001602081815260408084208785529091529091209081018290556006018a9055905080828b7fa57d40f1496988cf60ab7c9d5ba4ff83647f67d3898d441a3aaf21b651678fd986886040516123ec929190615cb2565b60405180910390a45050979650505050505050565b4682602001511461243a57602082015160405163092048d160e11b8152610bdc916001600160e01b031960003516914690600401615c90565b6000612445836132ff565b60208085015160009081526001808352604080832088518452909352919020015490915081146124b457602080840151600090815260018083526040808320875184529093529082902001549051632bee7fdb60e21b8152610bdc918391600401918252602082015260400190565b60006124be613e05565b90506000816124cb613e0f565b6124d591906156bb565b6124e09060016156a8565b604080516060810182526000808252602082018190529181019190915290915061140c868685858b866125128e613e19565b613e33565b6000825480156120d657828102915080820483146120d657634e487b7160005260116020526024601cfd5b60005b82518110156125eb57306001600160a01b031682828151811061256a5761256a615858565b60200260200101516001600160a01b0316036125a7576000356001600160e01b03191660405163053265f160e01b8152600401610bdc91906156f0565b6125e38382815181106125bc576125bc615858565b60200260200101518383815181106125d6576125d6615858565b602002602001015161417c565b600101612545565b505050565b806001600160a01b03163b60000361136e57604051630bfc64a360e21b81526001600160a01b0382166004820152602401610bdc565b807fdea3103d22025c269050bea94c0c84688877f12fa22b7e6d2d5d78a9a49aa1cb600084600f81111561265c5761265c614e72565b60ff168152602081019190915260400160002080546001600160a01b0319166001600160a01b03928316179055811682600f81111561269d5761269d614e72565b6040517f865d1c228a8ea13709cfe61f346f7ff67f1bbd4a18ff31ad3e7147350d317c5990600090a35050565b600080825460ff1660048111156126e3576126e3614e72565b1480156126f4575042826006015411155b9050801561117f5760018201546040517f58f98006a7f2f253f8ae8f8b7cec9008ca05359633561cd7c22f3005682d4a5590600090a260005b60048301548110156127e05782600801600084600401838154811061275457612754615858565b60009182526020808320909101546001600160a01b031683528201929092526040018120805460ff19169055600484018054600786019291908490811061279d5761279d615858565b60009182526020808320909101546001600160a01b031683528201929092526040018120805460ff1916815560018181018390556002909101919091550161272d565b5060005b60058301548110156128975782600801600084600501838154811061280b5761280b615858565b60009182526020808320909101546001600160a01b031683528201929092526040018120805460ff19169055600584018054600786019291908490811061285457612854615858565b60009182526020808320909101546001600160a01b031683528201929092526040018120805460ff191681556001818101839055600290910191909155016127e4565b50815460ff1916825560006001830181905560028301819055600383018190556128c5906004840190614aa9565b6128d3600583016000614aa9565b60006006830155919050565b60606107b1600080516020615fa4833981519152611a8c565b6001600160a01b03811661136e576000356001600160e01b03191660405163104c66df60e31b8152600401610bdc91906156f0565b6000610979836001600160a01b03841661420f565b6000610979836001600160a01b038416614302565b6000612970600080516020615f04833981519152611a8c565b805190915060008190036129845750505050565b6000816001600160401b0381111561299e5761299e6150f9565b6040519080825280602002602001820160405280156129c7578160200160208202803683370190505b5090506000826001600160401b038111156129e4576129e46150f9565b604051908082528060200260200182016040528015612a1757816020015b6060815260200190600190039081612a025790505b50905060008686604051602001612a2f929190615cdc565b6040516020818303038152906040529050600081604051602401612a539190615d0d565b60408051601f198184030181529190526020810180516001600160e01b03166325da93a560e11b179052905060005b85811015612c1757868181518110612a9c57612a9c615858565b60200260200101516001600160a01b031683604051612abb9190615d20565b6000604051808303816000865af19150503d8060008114612af8576040519150601f19603f3d011682016040523d82523d6000602084013e612afd565b606091505b50868381518110612b1057612b10615858565b60200260200101868481518110612b2957612b29615858565b6020026020010182905282151515158152505050848181518110612b4f57612b4f615858565b6020026020010151612c0f57868181518110612b6d57612b6d615858565b60200260200101516001600160a01b031682604051612b8c9190615d20565b6000604051808303816000865af19150503d8060008114612bc9576040519150601f19603f3d011682016040523d82523d6000602084013e612bce565b606091505b50868381518110612be157612be1615858565b60200260200101868481518110612bfa57612bfa615858565b60200260200101829052821515151581525050505b600101612a82565b507fc0b07a27e66788f39cc91405f012f34066b16f31b4bda9438c52f2dae0cc5b6382878686604051612c4d9493929190615d3c565b60405180910390a15050505050505050565b6001600160a01b03811660009081526001830160205260408120541515610979565b60008082841115612cb3576000356001600160e01b0319166040516387f6f09560e01b8152600401610bdc91906156f0565b600080516020615f44833981519152549150612cdb600080516020615f248339815191525490565b9050612cf4600080516020615f44833981519152859055565b612d0b600080516020615f24833981519152849055565b8284612d367f92872d32822c9d44b36a2537d3e0d4c46fc4de1ce154ccfaed560a8a58445f1d614355565b60408051868152602081018690527f976f8a9c5bdf8248dec172376d6e2b80a8e3df2f0328e381c6db8e1cf138c0f8910160405180910390a49250929050565b60606107b17f546f6b46ab35b030b6816596b352aef78857377176c8b24baa2046a62cf1998c611a8c565b8051606090806001600160401b03811115612dbe57612dbe6150f9565b604051908082528060200260200182016040528015612de7578160200160208202803683370190505b509150600080516020615f6483398151915260005b8281101561102d57816000868381518110612e1957612e19615858565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160149054906101000a90046001600160601b0316848281518110612e6a57612e6a615858565b6001600160601b0390921660209283029190910190910152600101612dfc565b60006109cb825490565b6001600160a01b03166000908152600080516020615f648339815191526020526040902054600160a01b90046001600160601b031690565b606081612ed88161191f565b8251806001600160401b03811115612ef257612ef26150f9565b604051908082528060200260200182016040528015612f1b578160200160208202803683370190505b50925080600003612f2c57506122ec565b60408051808201909152600080825260208201819052600080516020615f84833981519152917f546f6b46ab35b030b6816596b352aef78857377176c8b24baa2046a62cf1998c91600080516020615fa483398151915291600080516020615f64833981519152919081908190815b89811015613131578c8181518110612fb557612fb5615858565b6020908102919091018101516001600160a01b038082166000908152928c905260409092205490911695509350612feb856128f8565b612ff4846128f8565b6001600160a01b0385811660009081526020888152604091829020825180840190935254808416808452600160a01b9091046001600160601b03169183019190915290935090851614613068576000356001600160e01b03191660405163053265f160e01b8152600401610bdc91906156f0565b6130728785612c5f565b801561308357506130838886612c5f565b8c828151811061309557613095615858565b6020026020010190151590811515815250508b81815181106130b9576130b9615858565b602002602001015115613129576130d0888661292d565b506130db878561292d565b506001600160a01b03808516600090815260208b8152604080832080546001600160a01b0319169055928816825288815291812055820151613126906001600160601b0316846156a8565b92505b600101612f9b565b5061314a600080516020615fc483398151915283614370565b5061316963c48549de60e01b8d8d604051602001610db29291906158cd565b7fdf3dcd7987202f64648f3acdbf12401e3a2bb23e77e19f99826b5475cbb863698b8d60405161319a929190615d89565b60405180910390a150505050505050505050919050565b6131b9614a6c565b6131cb6131c589615bc6565b83614380565b905060006131db6121d38a615bc6565b90506131f482898989896121f18a6113b889600061343e565b50979650505050505050565b602082015160009080820361323b576000356001600160e01b03191660004660405163092048d160e11b8152600401610bdc93929190615c90565b60025461324990859061399f565b6000613254856132ff565b905061325f826137fd565b600083815260016020818152604080842085855290915291829020918801519082018490556006909101559250845183146132bb576000356001600160e01b03191660405163d4cec26960e01b8152600401610bdc91906156f0565b8083837fa57d40f1496988cf60ab7c9d5ba4ff83647f67d3898d441a3aaf21b651678fd988886040516132ef929190615cb2565b60405180910390a4505092915050565b6080810151606082015160a083015151600092919083906001600160401b0381111561332d5761332d6150f9565b604051908082528060200260200182016040528015613356578160200160208202803683370190505b5060c086015190915060005b82518110156133b5578660a00151818151811061338157613381615858565b6020026020010151805190602001208382815181106133a2576133a2615858565b6020908102919091010152600101613362565b50604080517fd051578048e6ff0bbc9fca3b65a42088dbde10f36ca841de566711087ad9b08a8152875160208083019190915280890151828401529790910151606082015283518702938701939093206080840152835186029386019390932060a0830152805185029085012060c082015281518402919093012060e083015250610100902090565b604080517fd900570327c4c0df8dd6bdd522b7da7e39145dd049d2fd4602276adcd511e3c2815260208101939093528201526060902090565b841580159061348557508483145b6134b0576000356001600160e01b0319166040516306b5667560e21b8152600401610bdc91906156f0565b60006134ba613e05565b90506000816134c7613e0f565b6134d191906156bb565b6134dc9060016156a8565b9050600080366000805b898110156136a0578a8a8281811061350057613500615858565b606002919091019350600090508d8d8381811061351f5761351f615858565b90506020020160208101906135349190615dae565b600181111561354557613545614e72565b036135715761356a8961355b6020860186615dda565b85602001358660400135614480565b93506135e8565b60018d8d8381811061358557613585615858565b905060200201602081019061359a9190615dae565b60018111156135ab576135ab614e72565b036135c15761356a8861355b6020860186615dda565b6000356001600160e01b031916604051630612418f60e11b8152600401610bdc91906156f0565b836001600160a01b0316856001600160a01b031610613628576000356001600160e01b031916604051635d3dcd3160e01b8152600401610bdc91906156f0565b839450600061363685613e19565b9050801561369757600192506136858f8f8f8581811061365857613658615858565b905060200201602081019061366d9190615dae565b8a8a8961367f368b90038b018b615df5565b87613e33565b15613697575050505050505050611a83565b506001016134e6565b50806136cd576000356001600160e01b03191660405163726b3acb60e01b8152600401610bdc91906156f0565b50505050505050505050505050565b81518151606091908082016001600160401b038111156136fe576136fe6150f9565b604051908082528060200260200182016040528015613727578160200160208202803683370190505b50925060005b828110156137815785818151811061374757613747615858565b602002602001015184828151811061376157613761615858565b6001600160a01b039092166020928302919091019091015260010161372d565b60005b828110156137dc5785818151811061379e5761379e615858565b60200260200101518583815181106137b8576137b8615858565b6001600160a01b039092166020928302919091019091015260019182019101613784565b5050505092915050565b60006109cb836137f685856144a8565b9250829055565b6000818152602081905260408120549081900361382c5750600090815260208190526040902060019081905590565b600082815260016020908152604080832084845290915281209061384f826126ca565b9050806138a6576000825460ff16600481111561386e5761386e614e72565b0361388c5760405163757a436360e01b815260040160405180910390fd5b600084815260208190526040902080546001019081905592505b5050919050565b6138b5614a6c565b82518152602080840151604080840191909152600091830191909152830151516001600160401b038111156138ec576138ec6150f9565b604051908082528060200260200182016040528015613915578160200160208202803683370190505b5060608083019190915283015160808083019190915283015160a08083019190915283015160c082015260005b8360400151518110156120d65782818151811061396157613961615858565b60200260200101518260600151828151811061397f5761397f615858565b6001600160a01b0390921660209283029190910190910152600101613942565b60008260600151511180156139bd5750816080015151826060015151145b80156139d257508160a0015151826060015151145b80156139e757508160c0015151826060015151145b613a12576000356001600160e01b0319166040516306b5667560e21b8152600401610bdc91906156f0565b613a1c81426156a8565b82604001511115610bef5760405163ad89be9d60e01b815260040160405180910390fd5b60608101516040820151608083015151600092919083906001600160401b03811115613a6e57613a6e6150f9565b604051908082528060200260200182016040528015613a97578160200160208202803683370190505b5060a086015190915060005b8251811015613af65786608001518181518110613ac257613ac2615858565b602002602001015180519060200120838281518110613ae357613ae3615858565b6020908102919091010152600101613aa3565b50604080517f1463f426c05aff2c1a7a0957a71c9898bc8b47142540538e79ee25ee911413508152875160208083019190915297880151918101919091528351870293870193909320606084015283518602938601939093206080830152805185029085012060a082015281518402919093012060c08301525060e0902090565b60008151600003613b8a57506000919050565b60005b6001835103811015613c0d57600181015b8351811015613c0457838181518110613bb957613bb9615858565b60200260200101516001600160a01b0316848381518110613bdc57613bdc615858565b60200260200101516001600160a01b031603613bfc575060019392505050565b600101613b9e565b50600101613b8d565b50600092915050565b606081600001805480602002602001604051908101604052809291908181526020018280548015613c6657602002820191906000526020600020905b815481526020019060010190808311613c52575b50505050509050919050565b600081604051602401613c8591906156f0565b60408051601f198184030181529181526020820180516001600160e01b03166301ffc9a760e01b1790525190915060009081906001600160a01b03861690613cce908590615d20565b600060405180830381855afa9150503d8060008114613d09576040519150601f19603f3d011682016040523d82523d6000602084013e613d0e565b606091505b509150915081613dd057846001600160a01b031683604051602401613d339190615d0d565b60408051601f198184030181529181526020820180516001600160e01b03166325da93a560e11b17905251613d689190615d20565b600060405180830381855afa9150503d8060008114613da3576040519150601f19603f3d011682016040523d82523d6000602084013e613da8565b606091505b50909250905081613dd057838560405163069d427960e11b8152600401610bdc929190615e55565b80806020019051810190613de49190615e78565b6106df57838560405163069d427960e11b8152600401610bdc929190615e55565b60006107b1610b32565b60006107b1610799565b6000613e2482612e94565b6001600160601b031692915050565b60208088015188516000828152600184526040808220838352909452928320613e5b816126ca565b15613e6c576001935050505061078e565b6020808c015160009081529081905260409020548214613ead576000356001600160e01b03191660405163d4cec26960e01b8152600401610bdc91906156f0565b6000815460ff166004811115613ec557613ec5614e72565b14613ee3576040516322de95ff60e21b815260040160405180910390fd5b6001600160a01b038716600090815260088201602052604090205460ff1615613f2a5760405163025fd59560e41b81526001600160a01b0388166004820152602401610bdc565b6001600160a01b03871660009081526008820160209081526040909120805460ff19166001179055860151151580613f655750604086015115155b80613f735750855160ff1615155b15613fba576001600160a01b03871660009081526007820160209081526040918290208851815460ff191660ff909116178155908801516001820155908701516002909101555b866001600160a01b031681600101547f1203f9e81c814a35f5f4cc24087b2a24c6fb7986a9f1406b68a9484882c93a238c88604051613ffa929190615e9a565b60405180910390a3600080808c600181111561401857614018614e72565b0361406d576004830180546001810182556000918252602082200180546001600160a01b0319166001600160a01b038c161790556003840180548992906140609084906156a8565b92505081905591506140d2565b60018c600181111561408157614081614e72565b036135c1576005830180546001810182556000918252602082200180546001600160a01b0319166001600160a01b038c161790556002840180548992906140c99084906156a8565b92505081905590505b8a821061412657825460ff19166001908117845580840154604051919750907f5c819725ea53655a3b898f3df59b66489761935454e9212ca1e5ebd759953d0b90600090a2614121838e6144c7565b61416c565b89811061416c57825460ff19166003178355600180840154604051919750907f55295d4ce992922fa2e5ffbf3a3dcdb367de0a15e125ace083456017fd22060f90600090a25b5050505050979650505050505050565b806003600084600481111561419357614193614e72565b60048111156141a4576141a4614e72565b8152602081019190915260400160002080546001600160a01b0319166001600160a01b0392831617905581168260048111156141e2576141e2614e72565b6040517f356c8c57e9e84b99b1cb58b13c985b2c979f78cbdf4d0fa70fe2a98bb09a099d90600090a35050565b600081815260018301602052604081205480156142f85760006142336001836156bb565b8554909150600090614247906001906156bb565b90508181146142ac57600086600001828154811061426757614267615858565b906000526020600020015490508087600001848154811061428a5761428a615858565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806142bd576142bd615ea8565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506109cb565b60009150506109cb565b6000818152600183016020526040812054614349575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556109cb565b5060006109cb565b9055565b600061435f825490565b905061117f826143518360016156a8565b60006109cb836137f68585614534565b614388614a6c565b6143a161439a84604001516001611f83565b84906138ad565b90506143b86002548261399f90919063ffffffff16565b60006143c3826132ff565b905060006143d160006137fd565b6000818152600080516020615ee4833981519152602090815260409091209087015160018201859055600690910155905082518114614431576000356001600160e01b03191660405163d4cec26960e01b8152600401610bdc91906156f0565b81817f771d78ae9e5fca95a532fb0971d575d0ce9b59d14823c063e08740137e0e0eca8561445e89613a40565b89896040516144709493929190615a96565b60405180910390a3505092915050565b60008060006144918787878761455d565b9150915061449e8161464a565b5095945050505050565b81548101818110156109cb57634e487b7160005260116020526024601cfd5b6144d081614800565b15610bef57815460ff191660021782556000806144ec8361481a565b9150915083600101547fe134987599ae266ec90edeff1b26125b287dbb57b10822649432d1bb26537fba8383604051614526929190615ebe565b60405180910390a250505050565b600082548281101561455357634e487b7160005260116020526024601cfd5b9190910392915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156145945750600090506003614641565b8460ff16601b141580156145ac57508460ff16601c14155b156145bd5750600090506004614641565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614611573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661463a57600060019250925050614641565b9150600090505b94509492505050565b600081600481111561465e5761465e614e72565b036146665750565b600181600481111561467a5761467a614e72565b036146c75760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610bdc565b60028160048111156146db576146db614e72565b036147285760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610bdc565b600381600481111561473c5761473c614e72565b036147945760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610bdc565b60048160048111156147a8576147a8614e72565b0361136e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610bdc565b60008160200151600014806109cb57505060200151461490565b60608061482683614800565b61485857602083015160405163092048d160e11b8152610bdc916001600160e01b031960003516914690600401615c90565b8260600151516001600160401b03811115614875576148756150f9565b60405190808252806020026020018201604052801561489e578160200160208202803683370190505b5091508260600151516001600160401b038111156148be576148be6150f9565b6040519080825280602002602001820160405280156148f157816020015b60608152602001906001900390816148dc5790505b50905060005b836060015151811015614a66578360c00151818151811061491a5761491a615858565b60200260200101515a1161494d57614931846132ff565b6040516307aec4ab60e21b8152600401610bdc91815260200190565b8360600151818151811061496357614963615858565b60200260200101516001600160a01b03168460800151828151811061498a5761498a615858565b60200260200101518560c0015183815181106149a8576149a8615858565b6020026020010151908660a0015184815181106149c7576149c7615858565b60200260200101516040516149dc9190615d20565b600060405180830381858888f193505050503d8060008114614a1a576040519150601f19603f3d011682016040523d82523d6000602084013e614a1f565b606091505b50848381518110614a3257614a32615858565b60200260200101848481518110614a4b57614a4b615858565b602090810291909101019190915290151590526001016148f7565b50915091565b6040518060e00160405280600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b508054600082559060005260206000209081019061136e91905b80821115614ad75760008155600101614ac3565b5090565b600060e082840312156122ec57600080fd5b60008083601f840112614aff57600080fd5b5081356001600160401b03811115614b1657600080fd5b6020830191508360208260051b8501011115610f2057600080fd5b60008083601f840112614b4357600080fd5b5081356001600160401b03811115614b5a57600080fd5b602083019150836020606083028501011115610f2057600080fd5b600080600080600060608688031215614b8d57600080fd5b85356001600160401b0380821115614ba457600080fd5b614bb089838a01614adb565b96506020880135915080821115614bc657600080fd5b614bd289838a01614aed565b90965094506040880135915080821115614beb57600080fd5b50614bf888828901614b31565b969995985093965092949392505050565b60008060008060008060608789031215614c2257600080fd5b86356001600160401b0380821115614c3957600080fd5b614c458a838b01614aed565b90985096506020890135915080821115614c5e57600080fd5b614c6a8a838b01614aed565b90965094506040890135915080821115614c8357600080fd5b50614c9089828a01614aed565b979a9699509497509295939492505050565b60008151808452602080850194506020840160005b83811015614cd5578151151587529582019590820190600101614cb7565b509495945050505050565b6020815260006109796020830184614ca2565b600080600080600080600080600060a08a8c031215614d1157600080fd5b8935985060208a01356001600160401b0380821115614d2f57600080fd5b614d3b8d838e01614aed565b909a50985060408c0135915080821115614d5457600080fd5b614d608d838e01614aed565b909850965060608c0135915080821115614d7957600080fd5b614d858d838e01614aed565b909650945060808c0135915080821115614d9e57600080fd5b50614dab8c828d01614aed565b915080935050809150509295985092959850929598565b60008060208385031215614dd557600080fd5b82356001600160401b03811115614deb57600080fd5b614df785828601614aed565b90969095509350505050565b60008151808452602080850194506020840160005b83811015614cd55781516001600160a01b031687529582019590820190600101614e18565b6020815260006109796020830184614e03565b60008060408385031215614e6357600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b60028110614e9857614e98614e72565b9052565b60006060808352614eb06060840187614e03565b83810360208581019190915286518083528782019282019060005b81811015614eee57614ede838651614e88565b9383019391830191600101614ecb565b50506040925085810360408701528087518083528383019150838901925060005b81811015614f3f578351805160ff1684528581015186850152860151868401529284019291860191600101614f0f565b50909a9950505050505050505050565b80356001600160a01b038116811461117f57600080fd5b600080600060608486031215614f7b57600080fd5b8335925060208401359150614f9260408501614f4f565b90509250925092565b600080600080600060608688031215614fb357600080fd5b85356001600160401b0380821115614fca57600080fd5b9087019060c0828a031215614fde57600080fd5b90955060208701359080821115614bc657600080fd5b60006020828403121561500657600080fd5b5035919050565b80356002811061117f57600080fd5b60008060008060008060008060008060c08b8d03121561503b57600080fd5b8a35995060208b01356001600160401b038082111561505957600080fd5b6150658e838f01614aed565b909b50995060408d013591508082111561507e57600080fd5b61508a8e838f01614aed565b909950975060608d01359150808211156150a357600080fd5b6150af8e838f01614aed565b909750955060808d01359150808211156150c857600080fd5b506150d58d828e01614aed565b90945092506150e8905060a08c0161500d565b90509295989b9194979a5092959850565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715615131576151316150f9565b60405290565b60405160c081016001600160401b0381118282101715615131576151316150f9565b604051601f8201601f191681016001600160401b0381118282101715615181576151816150f9565b604052919050565b60006001600160401b038211156151a2576151a26150f9565b5060051b60200190565b600082601f8301126151bd57600080fd5b813560206151d26151cd83615189565b615159565b80838252602082019150600560208560051b8801019450878511156151f657600080fd5b602087015b8581101561521f5780358281106152125760008081fd5b84529284019284016151fb565b5090979650505050505050565b600082601f83011261523d57600080fd5b8135602061524d6151cd83615189565b8083825260208201915060208460051b87010193508684111561526f57600080fd5b602086015b848110156152925761528581614f4f565b8352918301918301615274565b509695505050505050565b600080604083850312156152b057600080fd5b82356001600160401b03808211156152c757600080fd5b6152d3868387016151ac565b935060208501359150808211156152e957600080fd5b506152f68582860161522c565b9150509250929050565b6000806040838503121561531357600080fd5b8235915061532360208401614f4f565b90509250929050565b80356010811061117f57600080fd5b6000806040838503121561534e57600080fd5b6153578361532c565b915061532360208401614f4f565b60006020828403121561537757600080fd5b61097982614f4f565b60008060008060008060008060008060c08b8d03121561539f57600080fd5b8a35995060208b0135985060408b01356001600160401b03808211156153c457600080fd5b6153d08e838f01614aed565b909a50985060608d01359150808211156153e957600080fd5b6153f58e838f01614aed565b909850965060808d013591508082111561540e57600080fd5b61541a8e838f01614aed565b909650945060a08d013591508082111561543357600080fd5b506154408d828e01614aed565b915080935050809150509295989b9194979a5092959850565b6000806040838503121561546c57600080fd5b82356001600160401b0381111561548257600080fd5b61548e85828601614adb565b9250506153236020840161500d565b6005811061136e5761136e614e72565b60a081016154ba8761549d565b95815260208101949094526040840192909252606083015260809091015290565b6000602082840312156154ed57600080fd5b81356001600160401b0381111561550357600080fd5b6108c88482850161522c565b60008151808452602080850194506020840160005b83811015614cd55781516001600160601b031687529582019590820190600101615524565b60608152600061555c6060830186614e03565b828103602084015261556e8186614e03565b90508281036040840152615582818561550f565b9695505050505050565b602081526000610979602083018461550f565b6000602082840312156155b157600080fd5b6109798261532c565b60006155c86151cd84615189565b8381529050602080820190600585901b8401868111156155e757600080fd5b845b8181101561567a5780356001600160401b03808211156156095760008081fd5b8188019150601f8a8184011261561f5760008081fd5b823582811115615631576156316150f9565b615642818301601f19168801615159565b92508083528b8782860101111561565b57600091508182fd5b80878501888501376000908301870152508552509282019282016155e9565b505050509392505050565b60006109793684846155ba565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb615692565b818103818111156109cb576109cb615692565b6000826156eb57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160e01b031991909116815260200190565b600082601f83011261571657600080fd5b813560206157266151cd83615189565b8083825260208201915060208460051b87010193508684111561574857600080fd5b602086015b84811015615292578035835291830191830161574d565b600082601f83011261577557600080fd5b610979838335602085016155ba565b600060e0823603121561579657600080fd5b61579e61510f565b82358152602083013560208201526040830135604082015260608301356001600160401b03808211156157d057600080fd5b6157dc3683870161522c565b606084015260808501359150808211156157f557600080fd5b61580136838701615705565b608084015260a085013591508082111561581a57600080fd5b61582636838701615764565b60a084015260c085013591508082111561583f57600080fd5b5061584c36828601615705565b60c08301525092915050565b634e487b7160e01b600052603260045260246000fd5b80820281158282048414176109cb576109cb615692565b602081016010831061589957615899614e72565b91905290565b6001600160e01b03198316815260408101600b83106158c0576158c0614e72565b8260208301529392505050565b6040815260006158e06040830185614e03565b82810360208401526158f28185614ca2565b95945050505050565b60808152600061590e6080830187614ca2565b8281036020840152615920818761550f565b905082810360408401526159348186614e03565b9050828103606084015261078e8185614e03565b60008151808452602080850194506020840160005b83811015614cd55781518752958201959082019060010161595d565b60005b8381101561599457818101518382015260200161597c565b50506000910152565b600081518084526159b5816020860160208601615979565b601f01601f19169290920160200192915050565b60008282518085526020808601955060208260051b8401016020860160005b8481101561521f57601f19868403018952615a0483835161599d565b988401989250908301906001016159e8565b8051825260208101516020830152604081015160408301526000606082015160e06060850152615a4960e0850182614e03565b905060808301518482036080860152615a628282615948565b91505060a083015184820360a0860152615a7c82826159c9565b91505060c083015184820360c08601526158f28282615948565b608081526000615aa96080830187615a16565b60208681850152838203604085015260c08201865183528187015182840152604087015160c0604085015281815180845260e0860191508483019350600092505b80831015615b13578351615afd8161549d565b8252928401926001929092019190840190615aea565b50606089015193508481036060860152615b2d8185615948565b935050505060808601518282036080840152615b4982826159c9565b91505060a086015182820360a0840152615b638282615948565b93505050506158f260608301846001600160a01b03169052565b6000808335601e19843603018112615b9457600080fd5b8301803591506001600160401b03821115615bae57600080fd5b6020019150600581901b3603821315610f2057600080fd5b600060c08236031215615bd857600080fd5b615be0615137565b823581526020830135602082015260408301356001600160401b0380821115615c0857600080fd5b615c14368387016151ac565b60408401526060850135915080821115615c2d57600080fd5b615c3936838701615705565b60608401526080850135915080821115615c5257600080fd5b615c5e36838701615764565b608084015260a0850135915080821115615c7757600080fd5b50615c8436828601615705565b60a08301525092915050565b6001600160e01b03199390931683526020830191909152604082015260600190565b604081526000615cc56040830185615a16565b905060018060a01b03831660208301529392505050565b6001600160e01b0319831681528151600090615cff816004850160208701615979565b919091016004019392505050565b602081526000610979602083018461599d565b60008251615d32818460208701615979565b9190910192915050565b608081526000615d4f608083018761599d565b8281036020840152615d618187614e03565b90508281036040840152615d758186614ca2565b9050828103606084015261078e81856159c9565b604081526000615d9c6040830185614ca2565b82810360208401526158f28185614e03565b600060208284031215615dc057600080fd5b6109798261500d565b803560ff8116811461117f57600080fd5b600060208284031215615dec57600080fd5b61097982615dc9565b600060608284031215615e0757600080fd5b604051606081018181106001600160401b0382111715615e2957615e296150f9565b604052615e3583615dc9565b815260208301356020820152604083013560408201528091505092915050565b6001600160e01b03199290921682526001600160a01b0316602082015260400190565b600060208284031215615e8a57600080fd5b8151801515811461097957600080fd5b604081016158c08285614e88565b634e487b7160e01b600052603160045260246000fd5b604081526000615ed16040830185614ca2565b82810360208401526158f281856159c956fea6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495da136eb38f8d8e354915fc8a767c0dc81d49de5fb65d5477122a82ddd976240ac1ff16a4f04f2a37a9ba5252a69baa100b460e517d1f8019c054a5ad698f9ffc55405a488814eaa0e2a685a0131142785b8d033d311c8c8244e34a7c12ca40f88547008e60f5748911f2e59feb3093b7e4c2e87b2dd69d61f112fcc932de8e38400683eb2cb350596d73644c0c89fe45f108600003457374f4ab3e87b4f3aa3d38c234075fde25875da8a6b7e36b58b86681d483271a99eeeee1d78e258a24d6924fe71b0c8b61aea02ca498b5f53b29bd95726278b1fe4eb791bb24a42644ca26469706673582212202b9889dbcffa51841f7d0004a5bbec4f7d87e2f76d85649d246727a9563eac8f64736f6c634300081700335da136eb38f8d8e354915fc8a767c0dc81d49de5fb65d5477122a82ddd976240c55405a488814eaa0e2a685a0131142785b8d033d311c8c8244e34a7c12ca40f92872d32822c9d44b36a2537d3e0d4c46fc4de1ce154ccfaed560a8a58445f1d - │ ├─ [8446] → new (31337)RoninBridgeManager[0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3]@0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3 - │ │ └─ ← 0 bytes of code - │ └─ ← revert: StdCheats deployCode(string,bytes): Deployment failed. - └─ ← revert: StdCheats deployCode(string,bytes): Deployment failed. - -Test result: FAILED. 0 passed; 1 failed; 0 skipped; finished in 310.13ms - -Ran 1 test suites: 0 tests passed, 1 failed, 0 skipped (1 total tests) - -Failing tests: -Encountered 1 failing test in test/bridge/integration/Base.t.sol:Base_Integration -[FAIL. Reason: setup failed: revert: StdCheats deployCode(string,bytes): Deployment failed.] setUp() (gas: 0) - -Encountered a total of 1 failing tests, 0 tests succeeded diff --git a/script/GeneralConfig.sol b/script/GeneralConfig.sol index bf9b533c..00ba0cfc 100644 --- a/script/GeneralConfig.sol +++ b/script/GeneralConfig.sol @@ -59,10 +59,10 @@ contract GeneralConfig is BaseGeneralConfig, Utils { // ronin bridge contracts setAddress(DefaultNetwork.Local.key(), Contract.RoninGatewayV3.key(), vm.computeCreateAddress(deployer, 4)); - setAddress(DefaultNetwork.Local.key(), Contract.RoninBridgeManager.key(), vm.computeCreateAddress(deployer, 5)); - setAddress(DefaultNetwork.Local.key(), Contract.BridgeTracking.key(), vm.computeCreateAddress(deployer, 7)); - setAddress(DefaultNetwork.Local.key(), Contract.BridgeSlash.key(), vm.computeCreateAddress(deployer, 9)); - setAddress(DefaultNetwork.Local.key(), Contract.BridgeReward.key(), vm.computeCreateAddress(deployer, 11)); + setAddress(DefaultNetwork.Local.key(), Contract.BridgeTracking.key(), vm.computeCreateAddress(deployer, 6)); + setAddress(DefaultNetwork.Local.key(), Contract.BridgeSlash.key(), vm.computeCreateAddress(deployer, 8)); + setAddress(DefaultNetwork.Local.key(), Contract.BridgeReward.key(), vm.computeCreateAddress(deployer, 10)); + setAddress(DefaultNetwork.Local.key(), Contract.RoninBridgeManager.key(), vm.computeCreateAddress(deployer, 11)); //mainchain bridge contracts setAddress(DefaultNetwork.Local.key(), Contract.MainchainGatewayV3.key(), vm.computeCreateAddress(deployer, 13)); @@ -75,24 +75,6 @@ contract GeneralConfig is BaseGeneralConfig, Utils { setAddress(DefaultNetwork.Local.key(), Contract.AXS.key(), vm.computeCreateAddress(deployer, 16)); setAddress(DefaultNetwork.Local.key(), Contract.SLP.key(), vm.computeCreateAddress(deployer, 17)); setAddress(DefaultNetwork.Local.key(), Contract.USDC.key(), vm.computeCreateAddress(deployer, 18)); - - console.log("Deployer", deployer); - console.log(" > roninGateway", getAddress(DefaultNetwork.Local.key(), Contract.RoninGatewayV3.key())); - console.log(" > mainchainGateway", getAddress(DefaultNetwork.Local.key(), Contract.MainchainGatewayV3.key())); - console.log(" > bridgeTrackingContract", getAddress(DefaultNetwork.Local.key(), Contract.BridgeTracking.key())); - console.log(" > bridgeSlashContract", getAddress(DefaultNetwork.Local.key(), Contract.BridgeSlash.key())); - console.log(" > bridgeRewardContract", getAddress(DefaultNetwork.Local.key(), Contract.BridgeReward.key())); - console.log( - " > roninBridgeManagerContract", getAddress(DefaultNetwork.Local.key(), Contract.RoninBridgeManager.key()) - ); - console.log( - " > mainchainBridgeManagerContract", - getAddress(DefaultNetwork.Local.key(), Contract.MainchainBridgeManager.key()) - ); - console.log(" > WETH", getAddress(DefaultNetwork.Local.key(), Contract.WETH.key())); - console.log(" > AXS", getAddress(DefaultNetwork.Local.key(), Contract.AXS.key())); - console.log(" > SLP", getAddress(DefaultNetwork.Local.key(), Contract.SLP.key())); - console.log(" > USDC", getAddress(DefaultNetwork.Local.key(), Contract.USDC.key())); } } diff --git a/script/Migration.s.sol b/script/Migration.s.sol index 4bf4f10b..fed07af8 100644 --- a/script/Migration.s.sol +++ b/script/Migration.s.sol @@ -122,15 +122,14 @@ contract Migration is BaseMigration, Utils { options[0] = GlobalProposal.TargetOption.GatewayContract; targets[0] = loadContract(Contract.MainchainGatewayV3.key()); - param.mainchainBridgeManager.num = 70; - param.mainchainBridgeManager.denom = 100; - param.mainchainBridgeManager.roninChainId = block.chainid; - param.roninBridgeManager.expiryDuration = 60 * 60 * 24 * 14; // 14 days + param.mainchainBridgeManager.num = 2; + param.mainchainBridgeManager.denom = 4; + param.mainchainBridgeManager.roninChainId = 0; param.mainchainBridgeManager.bridgeContract = loadContract(Contract.MainchainGatewayV3.key()); param.mainchainBridgeManager.callbackRegisters = getEmptyAddressArray(); - param.mainchainBridgeManager.bridgeOperators = getEmptyAddressArray(); - param.mainchainBridgeManager.governors = getEmptyAddressArray(); - param.mainchainBridgeManager.voteWeights = getEmptyUint96Array(); + param.mainchainBridgeManager.bridgeOperators = operatorAddrs; + param.mainchainBridgeManager.governors = governorAddrs; + param.mainchainBridgeManager.voteWeights = voteWeights; param.mainchainBridgeManager.targetOptions = options; param.mainchainBridgeManager.targets = targets; diff --git a/script/contracts/MainchainBridgeManagerDeploy.s.sol b/script/contracts/MainchainBridgeManagerDeploy.s.sol index 4d2efdac..31cc13f3 100644 --- a/script/contracts/MainchainBridgeManagerDeploy.s.sol +++ b/script/contracts/MainchainBridgeManagerDeploy.s.sol @@ -16,7 +16,6 @@ contract MainchainBridgeManagerDeploy is Migration { param.num, param.denom, param.roninChainId, - param.expiryDuration, param.bridgeContract, param.callbackRegisters, param.bridgeOperators, diff --git a/test/bridge/integration/Base.t.sol b/test/bridge/integration/BaseIntegration.t.sol similarity index 97% rename from test/bridge/integration/Base.t.sol rename to test/bridge/integration/BaseIntegration.t.sol index 0d0a9123..dfb75295 100644 --- a/test/bridge/integration/Base.t.sol +++ b/test/bridge/integration/BaseIntegration.t.sol @@ -27,7 +27,7 @@ import { AXSDeploy } from "@ronin/script/contracts/token/AXSDeploy.s.sol"; import { SLPDeploy } from "@ronin/script/contracts/token/SLPDeploy.s.sol"; import { USDCDeploy } from "@ronin/script/contracts/token/USDCDeploy.s.sol"; -contract Base_Integration is Base_Test { +contract BaseIntegration_Test is Base_Test { ISharedArgument.SharedParameter _param; RoninBridgeManager _roninBridgeManager; @@ -45,10 +45,10 @@ contract Base_Integration is Base_Test { function setUp() public virtual { _roninGatewayV3 = new RoninGatewayV3Deploy().run(); - _roninBridgeManager = new RoninBridgeManagerDeploy().run(); _bridgeTracking = new BridgeTrackingDeploy().run(); _bridgeSlash = new BridgeSlashDeploy().run(); _bridgeReward = new BridgeRewardDeploy().run(); + _roninBridgeManager = new RoninBridgeManagerDeploy().run(); _mainchainGatewayV3 = new MainchainGatewayV3Deploy().run(); _mainchainBridgeManager = new MainchainBridgeManagerDeploy().run(); @@ -60,6 +60,4 @@ contract Base_Integration is Base_Test { _param = ISharedArgument(LibSharedAddress.CONFIG).sharedArguments(); } - - function test_() public { } } diff --git a/test/bridge/integration/bridge-manager/BridgeManagerInterface.sol b/test/bridge/integration/bridge-manager/BridgeManagerInterface.sol deleted file mode 100644 index 62c7862b..00000000 --- a/test/bridge/integration/bridge-manager/BridgeManagerInterface.sol +++ /dev/null @@ -1,32 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.19; - -import { RoninBridgeManager } from "@ronin/contracts/ronin/gateway/RoninBridgeManager.sol"; -import { SignerUtils } from "@ronin/test/utils/Signers.sol"; -import { GlobalProposal } from "@ronin/contracts/libraries/GlobalProposal.sol"; - -contract BridgeManagerInterface is SignerUtils { - RoninBridgeManager internal _contract; - Account[] internal _signers; - - constructor(RoninBridgeManager bridgeManager, Account[] memory signers) { - _contract = bridgeManager; - _setSigners(signers); - } - - function _setSigners(Account[] memory signers) internal { - delete _signers; - for (uint256 i; i < signers.length; i++) { - _signers.push(signers[i]); - } - } - - function createGlobalProposal( - uint256 expiryTs, - GlobalProposal.TargetOption targetOption, - uint256 value_, - bytes memory calldata_, - uint256 gasAmount_, - uint256 nonce_ - ) public view returns (GlobalProposal.GlobalProposalDetail memory rs) { } -} diff --git a/test/bridge/integration/bridge-manager/BridgeManager_IntegrationTest.t.sol b/test/bridge/integration/bridge-manager/BridgeManager_IntegrationTest.t.sol deleted file mode 100644 index 61e7b7e6..00000000 --- a/test/bridge/integration/bridge-manager/BridgeManager_IntegrationTest.t.sol +++ /dev/null @@ -1,96 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.19; - -import { console2 } from "forge-std/console2.sol"; -import { StdStyle } from "forge-std/StdStyle.sol"; - -import { IBridgeManager } from "@ronin/contracts/interfaces/bridge/IBridgeManager.sol"; -import { MockRoninGatewayV3Extended } from "@ronin/contracts/mocks/ronin/MockRoninGatewayV3Extended.sol"; -import { RoninBridgeManager } from "@ronin/contracts/ronin/gateway/RoninBridgeManager.sol"; -import { MainchainBridgeManager } from "@ronin/contracts/mainchain/MainchainBridgeManager.sol"; -import { MainchainGatewayV3 } from "@ronin/contracts/mainchain/MainchainGatewayV3.sol"; -import { ContractType } from "@ronin/contracts/utils/ContractType.sol"; -import { BridgeSlash } from "src/ronin/gateway/BridgeSlash.sol"; -import { BridgeTracking } from "src/ronin/gateway/BridgeTracking.sol"; -import { BridgeReward } from "src/ronin/gateway/BridgeReward.sol"; - -import { Base_Test } from "@ronin/test/Base.t.sol"; -import { SignerUtils } from "@ronin/test/utils/Signers.sol"; -import { InitTest } from "@ronin/test/init-test/InitTest.sol"; -import { DefaultTestConfig } from "@ronin/test/init-test/DefaultTestConfig.sol"; -import "@ronin/test/init-test/Structs.sol"; -import "./BridgeManagerInterface.sol"; - -contract Bridge_Integration_Test is Base_Test, InitTest, SignerUtils { - uint256 internal _operatorNum; - uint256 internal _bridgeAdminNumerator; - uint256 internal _bridgeAdminDenominator; - Account[] internal _operators; - Account[] internal _governors; - - MockRoninGatewayV3Extended internal _roninGatewayV3Contract; - MainchainGatewayV3 internal _mainchainGatewayV3; - RoninBridgeManager internal _roninBridgeManager; - BridgeTracking internal _bridgeTracking; - BridgeSlash internal _bridgeSlash; - BridgeReward internal _bridgeReward; - MainchainBridgeManager internal _mainchainBridgeManager; - - BridgeManagerInterface _bridgeManagerInterface; - - function setUp() public virtual { - _operatorNum = 6; - _setOperators(getSigners(_operatorNum)); - _setGovernors(getSigners(_operatorNum)); - _prepareDeploymentArgs(); - - InitTestOutput memory output = init(); - - _roninGatewayV3Contract = MockRoninGatewayV3Extended(output.roninGatewayV3Address); - _roninBridgeManager = RoninBridgeManager(output.roninBridgeManagerAddress); - _bridgeSlash = BridgeSlash(output.bridgeSlashAddress); - _bridgeReward = BridgeReward(output.bridgeRewardAddress); - _bridgeTracking = BridgeTracking(output.bridgeTrackingAddress); - - _mainchainGatewayV3 = MainchainGatewayV3(output.mainchainGatewayV3Address); - _mainchainBridgeManager = MainchainBridgeManager(output.mainchainBridgeManagerAddress); - - vm.roll(1); - } - - function _prepareDeploymentArgs() internal { - _bridgeAdminNumerator = 2; - _bridgeAdminDenominator = 4; - - BridgeManagerMemberStruct[] memory members = new BridgeManagerMemberStruct[](_operatorNum); - for (uint256 i; i < members.length; i++) { - members[i].operator = _operators[i].addr; - members[i].governor = _governors[i].addr; - members[i].weight = 100; - } - - BridgeManagerArguments memory arg = BridgeManagerArguments({ - numerator: _bridgeAdminNumerator, - denominator: _bridgeAdminDenominator, - expiryDuration: DefaultTestConfig.get().bridgeManagerArguments.expiryDuration, - members: members, - targets: DefaultTestConfig.get().bridgeManagerArguments.targets - }); - - setBridgeManagerArgs(arg); - } - - function _setOperators(Account[] memory operators) internal { - delete _operators; - for (uint256 i; i < operators.length; i++) { - _operators.push(operators[i]); - } - } - - function _setGovernors(Account[] memory governors) internal { - delete _governors; - for (uint256 i; i < governors.length; i++) { - _governors.push(governors[i]); - } - } -} diff --git a/test/bridge/integration/bridge-manager/set-config/setConfig.MainchainManager.t.sol b/test/bridge/integration/bridge-manager/set-config/setConfig.MainchainManager.t.sol index da199111..358c4810 100644 --- a/test/bridge/integration/bridge-manager/set-config/setConfig.MainchainManager.t.sol +++ b/test/bridge/integration/bridge-manager/set-config/setConfig.MainchainManager.t.sol @@ -1,9 +1,11 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.19; -import "../BridgeManager_IntegrationTest.t.sol"; +import { GlobalProposal } from "@ronin/contracts/libraries/GlobalProposal.sol"; +import { ContractType } from "@ronin/contracts/utils/ContractType.sol"; +import "../../BaseIntegration.t.sol"; -contract SetConfig_MainchainManager_Test is Bridge_Integration_Test { +contract SetConfig_MainchainManager_Test is BaseIntegration_Test { function setUp() public virtual override { super.setUp(); } @@ -16,9 +18,7 @@ contract SetConfig_MainchainManager_Test is Bridge_Integration_Test { function test_configBridgeOperatorsCorrectly() external { address[] memory bridgeOperators = _mainchainBridgeManager.getBridgeOperators(); - for (uint256 i; i < bridgeOperators.length; i++) { - assertEq(bridgeOperators[i], _operators[i].addr); - } + assertEq(bridgeOperators, _param.mainchainBridgeManager.bridgeOperators); } function test_configTargetsCorrectly() external { @@ -33,8 +33,8 @@ contract SetConfig_MainchainManager_Test is Bridge_Integration_Test { assertEq(results[0], address(_mainchainBridgeManager)); assertEq(results[1], address(_mainchainGatewayV3)); - assertEq(results[2], address(DEFAULT_ADDRESS)); - assertEq(results[3], address(DEFAULT_ADDRESS)); - assertEq(results[4], address(DEFAULT_ADDRESS)); + assertEq(results[2], address(address(0))); + assertEq(results[3], address(address(0))); + assertEq(results[4], address(address(0))); } } diff --git a/test/bridge/integration/bridge-manager/set-config/setConfig.RoninBridgeManager.t.sol b/test/bridge/integration/bridge-manager/set-config/setConfig.RoninBridgeManager.t.sol index b33fed83..d27aa9d4 100644 --- a/test/bridge/integration/bridge-manager/set-config/setConfig.RoninBridgeManager.t.sol +++ b/test/bridge/integration/bridge-manager/set-config/setConfig.RoninBridgeManager.t.sol @@ -1,24 +1,24 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.19; -import "../BridgeManager_IntegrationTest.t.sol"; +import { GlobalProposal } from "@ronin/contracts/libraries/GlobalProposal.sol"; +import { ContractType } from "@ronin/contracts/utils/ContractType.sol"; +import "../../BaseIntegration.t.sol"; -contract SetConfig_RoninBridgeManager_Test is Bridge_Integration_Test { +contract SetConfig_RoninBridgeManager_Test is BaseIntegration_Test { function setUp() public virtual override { super.setUp(); } function test_configBridgeContractCorrectly() external { address bridgeContract = _roninBridgeManager.getContract(ContractType.BRIDGE); - assertEq(bridgeContract, address(_roninGatewayV3Contract)); + assertEq(bridgeContract, address(_roninGatewayV3)); } function test_configBridgeOperatorsCorrectly() external { address[] memory bridgeOperators = _roninBridgeManager.getBridgeOperators(); - for (uint256 i; i < bridgeOperators.length; i++) { - assertEq(bridgeOperators[i], _operators[i].addr); - } + assertEq(bridgeOperators, _param.roninBridgeManager.bridgeOperators); } function test_configTargetsCorrectly() external { @@ -32,7 +32,7 @@ contract SetConfig_RoninBridgeManager_Test is Bridge_Integration_Test { address[] memory results = _roninBridgeManager.resolveTargets(targets); assertEq(results[0], address(_roninBridgeManager)); - assertEq(results[1], address(_roninGatewayV3Contract)); + assertEq(results[1], address(_roninGatewayV3)); assertEq(results[2], address(_bridgeSlash)); assertEq(results[3], address(_bridgeReward)); assertEq(results[4], address(_bridgeTracking)); diff --git a/test/init-test/DefaultTestConfig.sol b/test/init-test/DefaultTestConfig.sol deleted file mode 100644 index dace185a..00000000 --- a/test/init-test/DefaultTestConfig.sol +++ /dev/null @@ -1,88 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.19; - -import "./Structs.sol"; - -library DefaultTestConfig { - function get() public pure returns (InitTestInput memory rs) { - rs.roninGeneralConfig.bridgeContract = address(0); - rs.roninGeneralConfig.startedAtBlock = 0; - rs.mainchainGeneralConfig.bridgeContract = address(0); - rs.mainchainGeneralConfig.startedAtBlock = 0; - - // maintenanceArguments - rs.maintenanceArguments.minMaintenanceDurationInBlock = 100; - rs.maintenanceArguments.maxMaintenanceDurationInBlock = 1000; - rs.maintenanceArguments.minOffsetToStartSchedule = 200; - rs.maintenanceArguments.maxOffsetToStartSchedule = 200 * 7; - rs.maintenanceArguments.maxSchedules = 2; - rs.maintenanceArguments.cooldownSecsToMaintain = 0; - - // stakingArguments - rs.stakingArguments.minValidatorStakingAmount = 100; - rs.stakingArguments.maxCommissionRate = 100; - rs.stakingArguments.cooldownSecsToUndelegate = 3 * 86400; - rs.stakingArguments.waitingSecsToRevoke = 7 * 86400; - - //stakingVestingArguments - rs.stakingVestingArguments.blockProducerBonusPerBlock = 1000; - rs.stakingVestingArguments.bridgeOperatorBonusPerBlock = 1000; - rs.stakingVestingArguments.topupAmount = 100_000_000_000; - rs.stakingVestingArguments.fastFinalityRewardPercent = 1_00; - - //slashIndicatorArguments.bridgeOperatorSlashing - rs.slashIndicatorArguments.bridgeOperatorSlashing.missingVotesRatioTier1 = 10_00; - rs.slashIndicatorArguments.bridgeOperatorSlashing.missingVotesRatioTier2 = 20_00; - rs.slashIndicatorArguments.bridgeOperatorSlashing.jailDurationForMissingVotesRatioTier2 = 28800 * 2; - rs.slashIndicatorArguments.bridgeOperatorSlashing.skipBridgeOperatorSlashingThreshold = 10; - - //slashIndicatorArguments.bridgeVotingSlashing - rs.slashIndicatorArguments.bridgeVotingSlashing.bridgeVotingThreshold = 28800 * 3; - rs.slashIndicatorArguments.bridgeVotingSlashing.bridgeVotingSlashAmount = 10_000 * 1e18; - - //slashIndicatorArguments.doubleSignSlashing - rs.slashIndicatorArguments.doubleSignSlashing.slashDoubleSignAmount = 10 * 1e18; - rs.slashIndicatorArguments.doubleSignSlashing.doubleSigningJailUntilBlock = type(uint256).max; - rs.slashIndicatorArguments.doubleSignSlashing.doubleSigningOffsetLimitBlock = 28800; - - //slashIndicatorArguments.unavailabilitySlashing - rs.slashIndicatorArguments.unavailabilitySlashing.unavailabilityTier1Threshold = 5; - rs.slashIndicatorArguments.unavailabilitySlashing.unavailabilityTier2Threshold = 10; - rs.slashIndicatorArguments.unavailabilitySlashing.slashAmountForUnavailabilityTier2Threshold = 1e18; - rs.slashIndicatorArguments.unavailabilitySlashing.jailDurationForUnavailabilityTier2Threshold = 28800; - - //slashIndicatorArguments.creditScore - rs.slashIndicatorArguments.creditScore.gainCreditScore = 50; - rs.slashIndicatorArguments.creditScore.maxCreditScore = 600; - rs.slashIndicatorArguments.creditScore.bailOutCostMultiplier = 5; - rs.slashIndicatorArguments.creditScore.cutOffPercentageAfterBailout = 50_00; - - //roninValidatorSetArguments - rs.roninValidatorSetArguments.maxValidatorNumber = 4; - rs.roninValidatorSetArguments.maxPrioritizedValidatorNumber = 0; - rs.roninValidatorSetArguments.numberOfBlocksInEpoch = 600; - rs.roninValidatorSetArguments.maxValidatorCandidate = 10; - rs.roninValidatorSetArguments.minEffectiveDaysOnwards = 7; - rs.roninValidatorSetArguments.emergencyExitLockedAmount = 500; - rs.roninValidatorSetArguments.emergencyExpiryDuration = 14 * 86400; - - //roninTrustedOrganizationArguments - // rs.roninTrustedOrganizationArguments.trustedOrganizations = new TrustedOrganization[](0); - rs.roninTrustedOrganizationArguments.numerator = 0; - rs.roninTrustedOrganizationArguments.denominator = 1; - - //governanceAdminArguments - rs.governanceAdminArguments.proposalExpiryDuration = 60 * 60 * 24 * 14; // 14 days - - //bridgeManagerArguments - rs.bridgeManagerArguments.numerator = 70; - rs.bridgeManagerArguments.denominator = 100; - rs.bridgeManagerArguments.expiryDuration = 60 * 60 * 24 * 14; // 14 days - rs.bridgeManagerArguments.members = new BridgeManagerMemberStruct[](0); - rs.bridgeManagerArguments.targets = new TargetOptionStruct[](0); - - //bridgeRewardArguments - rs.bridgeRewardArguments.rewardPerPeriod = 5_000; - rs.bridgeRewardArguments.topupAmount = 100_000_000_000; - } -} diff --git a/test/init-test/InitTest.sol b/test/init-test/InitTest.sol deleted file mode 100644 index 443d1404..00000000 --- a/test/init-test/InitTest.sol +++ /dev/null @@ -1,377 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.19; - -import { console2 } from "forge-std/console2.sol"; -import "../Base.t.sol"; -import "./Structs.sol"; - -import { DefaultTestConfig } from "./DefaultTestConfig.sol"; - -import { TransparentUpgradeableProxyV2 } from "@ronin/contracts/extensions/TransparentUpgradeableProxyV2.sol"; - -import { BridgeTracking } from "@ronin/contracts/ronin/gateway/BridgeTracking.sol"; -import { BridgeSlash } from "@ronin/contracts/ronin/gateway/BridgeSlash.sol"; -import { BridgeReward } from "@ronin/contracts/ronin/gateway/BridgeReward.sol"; -import { RoninBridgeManager } from "@ronin/contracts/ronin/gateway/RoninBridgeManager.sol"; -import { MainchainBridgeManager } from "@ronin/contracts/mainchain/MainchainBridgeManager.sol"; -import { RoninGatewayV3 } from "@ronin/contracts/ronin/gateway/RoninGatewayV3.sol"; -import { MockRoninGatewayV3Extended } from "@ronin/contracts/mocks/ronin/MockRoninGatewayV3Extended.sol"; -import { MainchainGatewayV3 } from "@ronin/contracts/mainchain/MainchainGatewayV3.sol"; -import { AddressArrayUtils } from "@ronin/contracts/libraries/AddressArrayUtils.sol"; - -contract InitTest is Base_Test { - address constant DEFAULT_ADDRESS = address(0); - - InitTestInput internal _inputArguments; - address internal _deployer; - address internal _proxyAdmin; - - constructor() { - _inputArguments.roninGeneralConfig = DefaultTestConfig.get().roninGeneralConfig; - _inputArguments.maintenanceArguments = DefaultTestConfig.get().maintenanceArguments; - _inputArguments.stakingVestingArguments = DefaultTestConfig.get().stakingVestingArguments; - _inputArguments.slashIndicatorArguments = DefaultTestConfig.get().slashIndicatorArguments; - _inputArguments.roninValidatorSetArguments = DefaultTestConfig.get().roninValidatorSetArguments; - _inputArguments.governanceAdminArguments = DefaultTestConfig.get().governanceAdminArguments; - _inputArguments.bridgeRewardArguments = DefaultTestConfig.get().bridgeRewardArguments; - - setRoninGatewayArgs(DefaultTestConfig.get().roninGatewayV3Arguments); - setMainchainGatewayArgs(DefaultTestConfig.get().mainchainGatewayV3Arguments); - setBridgeManagerArgs(DefaultTestConfig.get().bridgeManagerArguments); - setRoninTrustedOrgArgs(DefaultTestConfig.get().roninTrustedOrganizationArguments); - } - - function setRoninGatewayArgs(RoninGatewayV3Arguments memory arg) public { - _inputArguments.roninGatewayV3Arguments.roleSetter = arg.roleSetter; - _inputArguments.roninGatewayV3Arguments.numerator = arg.numerator; - _inputArguments.roninGatewayV3Arguments.denominator = arg.denominator; - _inputArguments.roninGatewayV3Arguments.trustedNumerator = arg.trustedNumerator; - _inputArguments.roninGatewayV3Arguments.trustedDenominator = arg.trustedDenominator; - - delete _inputArguments.roninGatewayV3Arguments.withdrawalMigrators; - for (uint256 i; i < arg.withdrawalMigrators.length; i++) { - _inputArguments.roninGatewayV3Arguments.withdrawalMigrators.push(arg.withdrawalMigrators[i]); - } - for (uint256 index; index < 2; index++) { - delete _inputArguments.roninGatewayV3Arguments.packedAddresses[index]; - for (uint256 i; i < arg.packedAddresses[index].length; i++) { - _inputArguments.roninGatewayV3Arguments.packedAddresses[index].push(arg.packedAddresses[index][i]); - } - - delete _inputArguments.roninGatewayV3Arguments.packedNumbers[index]; - for (uint256 i; i < arg.packedNumbers[index].length; i++) { - _inputArguments.roninGatewayV3Arguments.packedNumbers[index].push(arg.packedNumbers[index][i]); - } - } - - delete _inputArguments.roninGatewayV3Arguments.standards; - for (uint256 i; i < arg.standards.length; i++) { - _inputArguments.roninGatewayV3Arguments.standards.push(arg.standards[i]); - } - } - - function setMainchainGatewayArgs(MainchainGatewayV3Arguments memory arg) public { - _inputArguments.mainchainGatewayV3Arguments.roleSetter = arg.roleSetter; - _inputArguments.mainchainGatewayV3Arguments.wrappedToken = arg.wrappedToken; - _inputArguments.mainchainGatewayV3Arguments.numerator = arg.numerator; - _inputArguments.mainchainGatewayV3Arguments.highTierVWNumerator = arg.highTierVWNumerator; - _inputArguments.mainchainGatewayV3Arguments.denominator = arg.denominator; - - for (uint256 index; index < 3; index++) { - delete _inputArguments.mainchainGatewayV3Arguments.addresses[index]; - for (uint256 i; i < arg.addresses[index].length; i++) { - _inputArguments.mainchainGatewayV3Arguments.addresses[index].push(arg.addresses[index][i]); - } - } - - for (uint256 index; index < 3; index++) { - delete _inputArguments.mainchainGatewayV3Arguments.thresholds[index]; - for (uint256 i; i < arg.thresholds[index].length; i++) { - _inputArguments.mainchainGatewayV3Arguments.thresholds[index].push(arg.thresholds[index][i]); - } - } - - delete _inputArguments.mainchainGatewayV3Arguments.standards; - for (uint256 i; i < arg.standards.length; i++) { - _inputArguments.mainchainGatewayV3Arguments.standards.push(arg.standards[i]); - } - } - - function setBridgeManagerArgs(BridgeManagerArguments memory arg) public { - _inputArguments.bridgeManagerArguments.denominator = arg.denominator; - _inputArguments.bridgeManagerArguments.numerator = arg.numerator; - _inputArguments.bridgeManagerArguments.expiryDuration = arg.expiryDuration; - - delete _inputArguments.bridgeManagerArguments.members; - for (uint256 i; i < arg.members.length; i++) { - _inputArguments.bridgeManagerArguments.members.push(arg.members[i]); - } - delete _inputArguments.bridgeManagerArguments.targets; - for (uint256 i; i < arg.targets.length; i++) { - _inputArguments.bridgeManagerArguments.targets.push(arg.targets[i]); - } - } - - function setRoninTrustedOrgArgs(RoninTrustedOrganizationArguments memory arg) public { - _inputArguments.roninTrustedOrganizationArguments.denominator = arg.denominator; - _inputArguments.roninTrustedOrganizationArguments.numerator = arg.numerator; - - delete _inputArguments.roninTrustedOrganizationArguments.trustedOrganizations; - for (uint256 i; i < arg.trustedOrganizations.length; i++) { - _inputArguments.roninTrustedOrganizationArguments.trustedOrganizations.push(arg.trustedOrganizations[i]); - } - } - - function init() public returns (InitTestOutput memory output) { - _deployer = makeAddr("deployer"); - vm.deal(_deployer, _inputArguments.bridgeRewardArguments.topupAmount); - _proxyAdmin = makeAddr("proxyAdmin"); - - _prepareAddressForGeneralConfig(); - - vm.startPrank(_deployer); - output.roninGatewayV3Address = payable(_deployRoninGatewayV3Contract()); - output.mainchainGatewayV3Address = payable(_deployMainchainGatewayV3()); - output.bridgeTrackingAddress = payable(_deployBridgeTracking()); - output.bridgeSlashAddress = payable(_deployBridgeSlash()); - output.bridgeRewardAddress = payable(_deployBridgeReward()); - output.roninBridgeManagerAddress = payable(_deployRoninBridgeManager()); - output.mainchainBridgeManagerAddress = payable(_deployMainchainBridgeManager()); - vm.stopPrank(); - } - - function _prepareAddressForGeneralConfig() internal { - uint256 nonce = 1; - _inputArguments.roninGeneralConfig.bridgeContract = _calculateAddress(_deployer, nonce).addr; - nonce += 2; - _inputArguments.mainchainGeneralConfig.bridgeContract = _calculateAddress(_deployer, nonce).addr; - - nonce += 2; - _inputArguments.roninGeneralConfig.bridgeTrackingContract = _calculateAddress(_deployer, nonce); - nonce += 2; - _inputArguments.roninGeneralConfig.bridgeSlashContract = _calculateAddress(_deployer, nonce); - nonce += 2; - _inputArguments.roninGeneralConfig.bridgeRewardContract = _calculateAddress(_deployer, nonce); - - nonce += 1; - _inputArguments.roninGeneralConfig.bridgeManagerContract = _calculateAddress(_deployer, nonce); - nonce += 1; - _inputArguments.mainchainGeneralConfig.bridgeManagerContract = _calculateAddress(_deployer, nonce); - - console2.log("Deployer", _deployer); - console2.log(" > roninGateway", _inputArguments.roninGeneralConfig.bridgeContract); - console2.log(" > mainchainGateway", _inputArguments.mainchainGeneralConfig.bridgeContract); - console2.log(" > bridgeTrackingContract", _inputArguments.roninGeneralConfig.bridgeTrackingContract.addr); - console2.log(" > bridgeSlashContract", _inputArguments.roninGeneralConfig.bridgeSlashContract.addr); - console2.log(" > bridgeRewardContract", _inputArguments.roninGeneralConfig.bridgeRewardContract.addr); - console2.log(" > roninBridgeManagerContract", _inputArguments.roninGeneralConfig.bridgeManagerContract.addr); - console2.log(" > mainchainBridgeManagerContract", _inputArguments.mainchainGeneralConfig.bridgeContract); - } - - function _deployRoninGatewayV3Contract() internal returns (address) { - MockRoninGatewayV3Extended logic = new MockRoninGatewayV3Extended(); - TransparentUpgradeableProxyV2 proxy = new TransparentUpgradeableProxyV2( - address(logic), - _proxyAdmin, - abi.encodeCall( - RoninGatewayV3.initialize, - ( - _inputArguments.roninGatewayV3Arguments.roleSetter, - _inputArguments.roninGatewayV3Arguments.numerator, - _inputArguments.roninGatewayV3Arguments.denominator, - _inputArguments.roninGatewayV3Arguments.trustedNumerator, - _inputArguments.roninGatewayV3Arguments.trustedDenominator, - _inputArguments.roninGatewayV3Arguments.withdrawalMigrators, - _inputArguments.roninGatewayV3Arguments.packedAddresses, - _inputArguments.roninGatewayV3Arguments.packedNumbers, - _inputArguments.roninGatewayV3Arguments.standards - ) - ) - ); - address roninGatewayContract = address(proxy); - vm.label(roninGatewayContract, "RoninGatewayV3"); - assertEq(roninGatewayContract, _inputArguments.roninGeneralConfig.bridgeContract); - return roninGatewayContract; - } - - function _deployBridgeTracking() internal returns (address) { - BridgeTracking logic = new BridgeTracking(); - TransparentUpgradeableProxyV2 proxy = new TransparentUpgradeableProxyV2( - address(logic), - _inputArguments.roninGeneralConfig.bridgeManagerContract.addr, - abi.encodeCall( - BridgeTracking.initialize, - ( - _inputArguments.roninGeneralConfig.bridgeContract, - _inputArguments.roninGeneralConfig.validatorContract.addr, - _inputArguments.roninGeneralConfig.startedAtBlock - ) - ) - ); - address result = address(proxy); - vm.label(result, "BridgeTrackingProxy"); - assertEq(result, _inputArguments.roninGeneralConfig.bridgeTrackingContract.addr); - return result; - } - - function _deployBridgeSlash() internal returns (address) { - BridgeSlash logic = new BridgeSlash(); - TransparentUpgradeableProxyV2 proxy = new TransparentUpgradeableProxyV2( - address(logic), - _inputArguments.roninGeneralConfig.bridgeManagerContract.addr, - abi.encodeCall( - BridgeSlash.initialize, - ( - _inputArguments.roninGeneralConfig.validatorContract.addr, - _inputArguments.roninGeneralConfig.bridgeManagerContract.addr, - _inputArguments.roninGeneralConfig.bridgeTrackingContract.addr, - _inputArguments.roninGeneralConfig.governanceAdmin.addr - ) - ) - ); - address result = address(proxy); - vm.label(result, "BridgeSlashProxy"); - assertEq(result, _inputArguments.roninGeneralConfig.bridgeSlashContract.addr); - return result; - } - - function _deployBridgeReward() internal returns (address) { - BridgeReward logic = new BridgeReward(); - TransparentUpgradeableProxyV2 proxy = new TransparentUpgradeableProxyV2{ - value: _inputArguments.bridgeRewardArguments.topupAmount - }( - address(logic), - _inputArguments.roninGeneralConfig.bridgeManagerContract.addr, - abi.encodeCall( - BridgeReward.initialize, - ( - _inputArguments.roninGeneralConfig.bridgeManagerContract.addr, - _inputArguments.roninGeneralConfig.bridgeTrackingContract.addr, - _inputArguments.roninGeneralConfig.bridgeSlashContract.addr, - _inputArguments.roninGeneralConfig.validatorContract.addr, - _inputArguments.roninGeneralConfig.governanceAdmin.addr, - _inputArguments.bridgeRewardArguments.rewardPerPeriod - ) - ) - ); - address result = address(proxy); - vm.label(result, "BridgeRewardProxy"); - assertEq(result, _inputArguments.roninGeneralConfig.bridgeRewardContract.addr); - return result; - } - - function _deployRoninBridgeManager() internal returns (address) { - uint256 lengthMembers = _inputArguments.bridgeManagerArguments.members.length; - address[] memory operators = new address[](lengthMembers); - address[] memory governors = new address[](lengthMembers); - uint96[] memory weights = new uint96[](lengthMembers); - - for (uint256 i; i < lengthMembers; i++) { - operators[i] = _inputArguments.bridgeManagerArguments.members[i].operator; - governors[i] = _inputArguments.bridgeManagerArguments.members[i].governor; - weights[i] = _inputArguments.bridgeManagerArguments.members[i].weight; - } - - GlobalProposal.TargetOption[] memory options = new GlobalProposal.TargetOption[](4); - address[] memory targets = new address[](4); - - options[0] = GlobalProposal.TargetOption.GatewayContract; - targets[0] = _inputArguments.roninGeneralConfig.bridgeContract; - - options[1] = GlobalProposal.TargetOption.BridgeReward; - targets[1] = _inputArguments.roninGeneralConfig.bridgeRewardContract.addr; - - options[2] = GlobalProposal.TargetOption.BridgeSlash; - targets[2] = _inputArguments.roninGeneralConfig.bridgeSlashContract.addr; - - options[3] = GlobalProposal.TargetOption.BridgeTracking; - targets[3] = _inputArguments.roninGeneralConfig.bridgeTrackingContract.addr; - - RoninBridgeManager bridgeManager = new RoninBridgeManager( - _inputArguments.bridgeManagerArguments.numerator, - _inputArguments.bridgeManagerArguments.denominator, - _inputArguments.roninGeneralConfig.roninChainId, - _inputArguments.bridgeManagerArguments.expiryDuration, - _inputArguments.roninGeneralConfig.bridgeContract, - wrapAddress(_inputArguments.roninGeneralConfig.bridgeSlashContract.addr), - operators, - governors, - weights, - options, - targets - ); - - address result = address(bridgeManager); - vm.label(result, "RoninBridgeManager"); - assertEq(result, _inputArguments.roninGeneralConfig.bridgeManagerContract.addr); - return result; - } - - function _deployMainchainBridgeManager() internal returns (address) { - uint256 lengthMembers = _inputArguments.bridgeManagerArguments.members.length; - address[] memory operators = new address[](lengthMembers); - address[] memory governors = new address[](lengthMembers); - uint96[] memory weights = new uint96[](lengthMembers); - - for (uint256 i; i < lengthMembers; i++) { - operators[i] = _inputArguments.bridgeManagerArguments.members[i].operator; - governors[i] = _inputArguments.bridgeManagerArguments.members[i].governor; - weights[i] = _inputArguments.bridgeManagerArguments.members[i].weight; - } - - GlobalProposal.TargetOption[] memory options = new GlobalProposal.TargetOption[](1); - address[] memory targets = new address[](1); - options[0] = GlobalProposal.TargetOption.GatewayContract; - targets[0] = _inputArguments.mainchainGeneralConfig.bridgeContract; - - MainchainBridgeManager bridgeManager = new MainchainBridgeManager( - _inputArguments.bridgeManagerArguments.numerator, - _inputArguments.bridgeManagerArguments.denominator, - _inputArguments.mainchainGeneralConfig.roninChainId, - _inputArguments.mainchainGeneralConfig.bridgeContract, - getEmptyAddressArray(), - operators, - governors, - weights, - options, - targets - ); - vm.label(address(bridgeManager), "MainchainBridgeManager"); - return address(bridgeManager); - } - - function _deployMainchainGatewayV3() internal returns (address) { - MainchainGatewayV3 logic = new MainchainGatewayV3(); - TransparentUpgradeableProxyV2 proxy = new TransparentUpgradeableProxyV2( - address(logic), - _proxyAdmin, - abi.encodeCall( - MainchainGatewayV3.initialize, - ( - _inputArguments.mainchainGatewayV3Arguments.roleSetter, - _inputArguments.mainchainGatewayV3Arguments.wrappedToken, - _inputArguments.mainchainGatewayV3Arguments.roninChainId, - _inputArguments.mainchainGatewayV3Arguments.numerator, - _inputArguments.mainchainGatewayV3Arguments.highTierVWNumerator, - _inputArguments.mainchainGatewayV3Arguments.denominator, - _inputArguments.mainchainGatewayV3Arguments.addresses, - _inputArguments.mainchainGatewayV3Arguments.thresholds, - _inputArguments.mainchainGatewayV3Arguments.standards - ) - ) - ); - address mainchainGatewayContract = address(proxy); - vm.label(mainchainGatewayContract, "MainchainGatewayV3"); - assertEq(mainchainGatewayContract, _inputArguments.mainchainGeneralConfig.bridgeContract); - return mainchainGatewayContract; - } - - function _calculateAddress(address deployer, uint256 nonce) internal pure returns (AddressExtended memory rs) { - rs.nonce = nonce; - rs.addr = computeCreateAddress(deployer, nonce); - } - - function _calculateSalt(uint256 nonce) internal pure returns (bytes32) { - return keccak256(abi.encode(uint256(nonce))); - } -} diff --git a/test/init-test/Structs.sol b/test/init-test/Structs.sol deleted file mode 100644 index c557d290..00000000 --- a/test/init-test/Structs.sol +++ /dev/null @@ -1,210 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.19; - -import "@ronin/contracts/libraries/GlobalProposal.sol"; -import "@ronin/contracts/interfaces/IWETH.sol"; -import "@ronin/contracts/libraries/Token.sol"; - -struct MaintenanceArguments { - uint256 minMaintenanceDurationInBlock; - uint256 maxMaintenanceDurationInBlock; - uint256 minOffsetToStartSchedule; - uint256 maxOffsetToStartSchedule; - uint256 maxSchedules; - uint256 cooldownSecsToMaintain; -} - -struct StakingArguments { - uint256 minValidatorStakingAmount; - uint256 minCommissionRate; - uint256 maxCommissionRate; - uint256 cooldownSecsToUndelegate; - uint256 waitingSecsToRevoke; -} - -struct StakingVestingArguments { - uint256 blockProducerBonusPerBlock; - uint256 bridgeOperatorBonusPerBlock; - uint256 topupAmount; - uint256 fastFinalityRewardPercent; -} - -struct BridgeOperatorSlashingConfig { - uint256 missingVotesRatioTier1; - uint256 missingVotesRatioTier2; - uint256 jailDurationForMissingVotesRatioTier2; - uint256 skipBridgeOperatorSlashingThreshold; -} - -struct BridgeVotingSlashingConfig { - uint256 bridgeVotingThreshold; - uint256 bridgeVotingSlashAmount; -} - -struct DoubleSignSlashingConfig { - uint256 slashDoubleSignAmount; - uint256 doubleSigningJailUntilBlock; - uint256 doubleSigningOffsetLimitBlock; -} - -struct UnavailabilitySlashing { - uint256 unavailabilityTier1Threshold; - uint256 unavailabilityTier2Threshold; - uint256 slashAmountForUnavailabilityTier2Threshold; - uint256 jailDurationForUnavailabilityTier2Threshold; -} - -struct CreditScoreConfig { - uint256 gainCreditScore; - uint256 maxCreditScore; - uint256 bailOutCostMultiplier; - uint256 cutOffPercentageAfterBailout; -} - -struct SlashIndicatorArguments { - BridgeOperatorSlashingConfig bridgeOperatorSlashing; - BridgeVotingSlashingConfig bridgeVotingSlashing; - DoubleSignSlashingConfig doubleSignSlashing; - UnavailabilitySlashing unavailabilitySlashing; - CreditScoreConfig creditScore; -} - -struct RoninValidatorSetArguments { - uint256 maxValidatorNumber; - uint256 maxValidatorCandidate; - uint256 maxPrioritizedValidatorNumber; - uint256 numberOfBlocksInEpoch; - uint256 minEffectiveDaysOnwards; - uint256 emergencyExitLockedAmount; - uint256 emergencyExpiryDuration; -} - -struct TrustedOrganization { - address consensusAddr; - address governor; - address bridgeVoter; - uint256 weight; - uint256 addedBlock; -} - -struct RoninTrustedOrganizationArguments { - TrustedOrganization[] trustedOrganizations; - uint256 numerator; - uint256 denominator; -} - -struct RoninGovernanceAdminArguments { - uint256 proposalExpiryDuration; -} - -struct TargetOptionStruct { - GlobalProposal.TargetOption option; - address target; -} - -struct BridgeManagerMemberStruct { - address governor; - address operator; - uint96 weight; -} - -struct BridgeManagerArguments { - uint256 numerator; - uint256 denominator; - uint256 expiryDuration; - BridgeManagerMemberStruct[] members; - TargetOptionStruct[] targets; -} - -struct RoninGatewayV3Arguments { - address roleSetter; - uint256 numerator; - uint256 denominator; - uint256 trustedNumerator; - uint256 trustedDenominator; - address[] withdrawalMigrators; - address[][2] packedAddresses; - uint256[][2] packedNumbers; - Token.Standard[] standards; -} - -struct MainchainGatewayV3Arguments { - address roleSetter; - IWETH wrappedToken; - uint256 roninChainId; - uint256 numerator; - uint256 highTierVWNumerator; - uint256 denominator; - // addresses[0]: mainchainTokens - // addresses[1]: roninTokens - // addresses[2]: withdrawalUnlockers - address[][3] addresses; - // thresholds[0]: highTierThreshold - // thresholds[1]: lockedThreshold - // thresholds[2]: unlockFeePercentages - // thresholds[3]: dailyWithdrawalLimit - uint256[][4] thresholds; - Token.Standard[] standards; -} - -struct BridgeRewardArguments { - uint256 rewardPerPeriod; - uint256 topupAmount; -} - -struct AddressExtended { - address addr; - uint256 nonce; -} - -struct GeneralConfig { - uint256 roninChainId; - address bridgeContract; - uint256 startedAtBlock; - AddressExtended governanceAdmin; - AddressExtended maintenanceContract; - AddressExtended fastFinalityTrackingContract; - AddressExtended stakingVestingContract; - AddressExtended slashIndicatorContract; - AddressExtended stakingContract; - AddressExtended validatorContract; - AddressExtended roninTrustedOrganizationContract; - AddressExtended bridgeTrackingContract; - AddressExtended bridgeManagerContract; - AddressExtended bridgeSlashContract; - AddressExtended bridgeRewardContract; -} - -struct InitTestInput { - GeneralConfig roninGeneralConfig; - GeneralConfig mainchainGeneralConfig; - MaintenanceArguments maintenanceArguments; - StakingArguments stakingArguments; - StakingVestingArguments stakingVestingArguments; - SlashIndicatorArguments slashIndicatorArguments; - RoninValidatorSetArguments roninValidatorSetArguments; - RoninTrustedOrganizationArguments roninTrustedOrganizationArguments; - RoninGovernanceAdminArguments governanceAdminArguments; - BridgeManagerArguments bridgeManagerArguments; - BridgeRewardArguments bridgeRewardArguments; - RoninGatewayV3Arguments roninGatewayV3Arguments; - MainchainGatewayV3Arguments mainchainGatewayV3Arguments; -} - -struct InitTestOutput { - address payable roninGovernanceAdminAddress; - address payable maintenanceContractAddress; - address payable roninTrustedOrganizationAddress; - address payable fastFinalityTrackingAddress; - address payable slashContractAddress; - address payable stakingContractAddress; - address payable stakingVestingContractAddress; - address payable validatorContractAddress; - address payable bridgeTrackingAddress; - address payable bridgeSlashAddress; - address payable bridgeRewardAddress; - address payable roninBridgeManagerAddress; - address payable roninGatewayV3Address; - address payable mainchainBridgeManagerAddress; - address payable mainchainGatewayV3Address; -} diff --git a/test/utils/Signers.sol b/test/utils/Signers.sol deleted file mode 100644 index d3c610f3..00000000 --- a/test/utils/Signers.sol +++ /dev/null @@ -1,21 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.19; - -import { StdCheats } from "forge-std/StdCheats.sol"; - -contract SignerUtils is StdCheats { - uint256 public constant ACCOUNT_SIGNER = uint256(keccak256("@ronin-bridge-contract.signer.index")); - uint256 internal _accountNonce; - - function getSigners(uint256 num) internal returns (Account[] memory accounts) { - require(num >= 1, "Invalid number of signers"); - uint256 startIdx = _accountNonce; - uint256 endIdx = _accountNonce + num - 1; - accounts = new Account[](num); - - for (uint256 i = startIdx; i <= endIdx; i++) { - accounts[i - startIdx] = makeAccount(string(abi.encodePacked(ACCOUNT_SIGNER, i))); - } - _accountNonce += num; - } -}