@layerzerolabs/lz-evm-oapp-v2 3.0.8 → 3.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @layerzerolabs/lz-evm-oapp-v2
2
2
 
3
+ ## 3.0.9
4
+
5
+ ### Patch Changes
6
+
7
+ - 9de3403: endpoints: codex mainnet redeploy, testnets: otherworld (redeploy), hemi
8
+ - Updated dependencies [9de3403]
9
+ - @layerzerolabs/lz-evm-v1-0.7@3.0.9
10
+ - @layerzerolabs/lz-evm-messagelib-v2@3.0.9
11
+ - @layerzerolabs/lz-evm-protocol-v2@3.0.9
12
+
3
13
  ## 3.0.8
4
14
 
5
15
  ### Patch Changes
@@ -271,8 +271,8 @@
271
271
  "type": "function"
272
272
  }
273
273
  ],
274
- "bytecode": "0x608060405234801561001057600080fd5b50611789806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80636fbffd35146100465780639c64e2451461006f578063e5c5e9a314610082575b600080fd5b610059610054366004610c00565b6100a4565b6040516100669190610cc1565b60405180910390f35b61005961007d366004610cdb565b6100c1565b610095610090366004610d68565b6100ee565b60405161006693929190610dda565b60606100b9846100b484866110eb565b610138565b949350505050565b60606100e5856100d185876110eb565b6100e036869003860186611205565b6101e2565b95945050505050565b6040805160c08101825260008082526020820181905291810182905260608181018390526080820183905260a082018390529061012b858561020e565b9250925092509250925092565b60606000600184610149855161031e565b6040517fffff00000000000000000000000000000000000000000000000000000000000060f094851b8116602083015292841b83166022820152921b166024820152602601604051602081830303815290604052905060005b83518110156101d8576101ce828583815181106101c1576101c16112ac565b60200260200101516103ba565b91506001016101a2565b5090505b92915050565b606060006101f08585610138565b9050826020015163ffffffff166000146100b9576100e5818461046a565b6040805160c08101825260008082526020820181905291810182905260608181018390526080820183905260a082018390529060008086818761025282600261130a565b9261025f9392919061131d565b61026891611347565b60f01c905061027860028361130a565b915061ffff81166001146102b8576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8682876102c682600261130a565b926102d39392919061131d565b6102dc91611347565b60f01c94506102ec60028361130a565b91506102f98787846104bd565b9094509150858210156103155761031187878461073d565b5092505b50509250925092565b600061ffff8211156103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f3620626974730000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b5090565b60606000836001846000015160016103e28760c001515160236103dd919061130a565b61031e565b6020808901516040516103fa9796959493920161138f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252908501516060860151608087015160a088015160c08901519496506104529587959060200161144a565b60405160208183030381529060405291505092915050565b606082600180846000015185602001518660400151876060015188608001518960a001516040516020016104a69998979695949392919061150d565b604051602081830303815290604052905092915050565b60608160008582866104d082600261130a565b926104dd9392919061131d565b6104e691611347565b60f01c90506104f660028361130a565b91508061ffff1667ffffffffffffffff81111561051557610515610f56565b60405190808252806020026020018201604052801561059c57816020015b6040805160e0810182526000808252602080830182905292820181905260608083018290526080830182905260a083019190915260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816105335790505b50925060005b8161ffff168161ffff1610156107335760008787858181106105c6576105c66112ac565b919091013560f81c91506105dd905060018561130a565b935060ff811660011461061c576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600088858961062c82600261130a565b926106399392919061131d565b61064291611347565b60f01c905061065260028661130a565b9450600089868a61066482600261130a565b926106719392919061131d565b61067a91611347565b60f01c905061068a60028761130a565b95507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61ffff8216016106f6576000806106c68c8c8a87610996565b9150915080975081898761ffff16815181106106e4576106e46112ac565b60200260200101819052505050610728565b6040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050506001016105a2565b5050935093915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152816000858583818110610784576107846112ac565b919091013560f81c915061079b905060018361130a565b915060ff81166001146107da576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008683876107ea82600261130a565b926107f79392919061131d565b61080091611347565b60f01c905061081060028461130a565b925061ffff8116600114610850576040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b868684818110610862576108626112ac565b919091013560f81c85525061087860018461130a565b925086838761088882600461130a565b926108959392919061131d565b61089e9161165f565b60e01c60208501526108b160048461130a565b92508686848181106108c5576108c56112ac565b600192013560f81c82146040870152506108df908461130a565b92508683876108ef82600861130a565b926108fc9392919061131d565b610905916116a5565b60c01c606085015261091860088461130a565b925086838761092882600261130a565b926109359392919061131d565b61093e91611347565b60f01c608085015261095160028461130a565b925086838761096182601461130a565b9261096e9392919061131d565b610977916116eb565b60601c60a085015261098a60148461130a565b92505050935093915050565b6040805160e08101825260006020820181905291810182905260608082018390526080820183905260a0820183905260c082015261ffff831681529083908682876109e282600261130a565b926109ef9392919061131d565b6109f891611347565b60f01c9050610a0860028361130a565b9150868287610a1882600461130a565b92610a259392919061131d565b610a2e9161165f565b60e01c6020840152610a4160048361130a565b9150868683818110610a5557610a556112ac565b600192013560f81c8214604086015250610a6f908361130a565b9150868287610a7f82600861130a565b92610a8c9392919061131d565b610a95916116a5565b60c01c6060840152610aa860088361130a565b9150868287610ab882600261130a565b92610ac59392919061131d565b610ace91611347565b60f01c6080840152610ae160028361130a565b9150868287610af182601461130a565b92610afe9392919061131d565b610b07916116eb565b60601c60a0840152610b1a60148361130a565b91506000610b29602383611731565b9050878388610b3c61ffff85168361130a565b92610b499392919061131d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060c0850152610b9061ffff82168461130a565b9250505094509492505050565b803561ffff81168114610baf57600080fd5b919050565b60008083601f840112610bc657600080fd5b50813567ffffffffffffffff811115610bde57600080fd5b6020830191508360208260051b8501011115610bf957600080fd5b9250929050565b600080600060408486031215610c1557600080fd5b610c1e84610b9d565b9250602084013567ffffffffffffffff811115610c3a57600080fd5b610c4686828701610bb4565b9497909650939450505050565b60005b83811015610c6e578181015183820152602001610c56565b50506000910152565b60008151808452610c8f816020860160208601610c53565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610cd46020830184610c77565b9392505050565b600080600080848603610100811215610cf357600080fd5b610cfc86610b9d565b9450602086013567ffffffffffffffff811115610d1857600080fd5b610d2488828901610bb4565b90955093505060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215610d5a57600080fd5b509295919450926040019150565b60008060208385031215610d7b57600080fd5b823567ffffffffffffffff80821115610d9357600080fd5b818501915085601f830112610da757600080fd5b813581811115610db657600080fd5b866020828501011115610dc857600080fd5b60209290920196919550909350505050565b61ffff84811682526101006020808401829052855191840182905260009261012080860193600581901b87019091019290888201865b82811015610edb577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee0898703018752815160e086825116885263ffffffff8683015116868901526040808301511515818a015250606080830151610e7f828b018267ffffffffffffffff169052565b505060808281015161ffff169089015260a08083015173ffffffffffffffffffffffffffffffffffffffff169089015260c091820151918801819052610ec781890183610c77565b988601989750505090830190600101610e10565b505050505080925050506100b9604083018460ff815116825263ffffffff602082015116602083015260408101511515604083015267ffffffffffffffff606082015116606083015261ffff608082015116608083015273ffffffffffffffffffffffffffffffffffffffff60a08201511660a08301525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715610fa857610fa8610f56565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610ff557610ff5610f56565b604052919050565b803563ffffffff81168114610baf57600080fd5b80358015158114610baf57600080fd5b803567ffffffffffffffff81168114610baf57600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610baf57600080fd5b600082601f83011261106e57600080fd5b813567ffffffffffffffff81111561108857611088610f56565b6110b960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601610fae565b8181528460208386010111156110ce57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff8084111561110657611106610f56565b8360051b6020611117818301610fae565b86815291850191818101903684111561112f57600080fd5b865b848110156111f9578035868111156111495760008081fd5b880160e036829003121561115d5760008081fd5b611165610f85565b61116e82610b9d565b815261117b868301610ffd565b86820152604061118c818401611011565b90820152606061119d838201611021565b9082015260806111ae838201610b9d565b9082015260a06111bf838201611039565b9082015260c082810135898111156111d75760008081fd5b6111e33682860161105d565b9183019190915250845250918301918301611131565b50979650505050505050565b600060c0828403121561121757600080fd5b60405160c0810181811067ffffffffffffffff8211171561123a5761123a610f56565b604052823560ff8116811461124e57600080fd5b815261125c60208401610ffd565b602082015261126d60408401611011565b604082015261127e60608401611021565b606082015261128f60808401610b9d565b60808201526112a060a08401611039565b60a08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156101dc576101dc6112db565b6000808585111561132d57600080fd5b8386111561133a57600080fd5b5050820193919092039150565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156113875780818660020360031b1b83161692505b505092915050565b600087516113a1818460208c01610c53565b60f89790971b7fff00000000000000000000000000000000000000000000000000000000000000169190960190815260f094851b7fffff000000000000000000000000000000000000000000000000000000000000908116600183015293851b841660038201529190931b909116600582015260e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166007820152600b0192915050565b6000875161145c818460208c01610c53565b808301905087151560f81b81527fffffffffffffffff0000000000000000000000000000000000000000000000008760c01b1660018201527fffff0000000000000000000000000000000000000000000000000000000000008660f01b1660098201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16600b82015283516114fd81601f840160208801610c53565b01601f0198975050505050505050565b60008a5161151f818460208f01610c53565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008b60f01b166001830152808a60f81b166003830152507fffffffff000000000000000000000000000000000000000000000000000000008860e01b16600482015286151560f81b60088201526115eb600982018760c01b7fffffffffffffffff000000000000000000000000000000000000000000000000169052565b61161c601182018660f01b7fffff000000000000000000000000000000000000000000000000000000000000169052565b61164d601382018560601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b6027019b9a5050505050505050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156113875760049490940360031b84901b1690921692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156113875760089490940360031b84901b1690921692915050565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156113875760149490940360031b84901b1690921692915050565b61ffff82811682821603908082111561174c5761174c6112db565b509291505056fea264697066735822122089ce3c73d5ae2293e44ab660075162be2b0718558719317afe71d9890663897364736f6c63430008160033",
275
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80636fbffd35146100465780639c64e2451461006f578063e5c5e9a314610082575b600080fd5b610059610054366004610c00565b6100a4565b6040516100669190610cc1565b60405180910390f35b61005961007d366004610cdb565b6100c1565b610095610090366004610d68565b6100ee565b60405161006693929190610dda565b60606100b9846100b484866110eb565b610138565b949350505050565b60606100e5856100d185876110eb565b6100e036869003860186611205565b6101e2565b95945050505050565b6040805160c08101825260008082526020820181905291810182905260608181018390526080820183905260a082018390529061012b858561020e565b9250925092509250925092565b60606000600184610149855161031e565b6040517fffff00000000000000000000000000000000000000000000000000000000000060f094851b8116602083015292841b83166022820152921b166024820152602601604051602081830303815290604052905060005b83518110156101d8576101ce828583815181106101c1576101c16112ac565b60200260200101516103ba565b91506001016101a2565b5090505b92915050565b606060006101f08585610138565b9050826020015163ffffffff166000146100b9576100e5818461046a565b6040805160c08101825260008082526020820181905291810182905260608181018390526080820183905260a082018390529060008086818761025282600261130a565b9261025f9392919061131d565b61026891611347565b60f01c905061027860028361130a565b915061ffff81166001146102b8576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8682876102c682600261130a565b926102d39392919061131d565b6102dc91611347565b60f01c94506102ec60028361130a565b91506102f98787846104bd565b9094509150858210156103155761031187878461073d565b5092505b50509250925092565b600061ffff8211156103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f3620626974730000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b5090565b60606000836001846000015160016103e28760c001515160236103dd919061130a565b61031e565b6020808901516040516103fa9796959493920161138f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252908501516060860151608087015160a088015160c08901519496506104529587959060200161144a565b60405160208183030381529060405291505092915050565b606082600180846000015185602001518660400151876060015188608001518960a001516040516020016104a69998979695949392919061150d565b604051602081830303815290604052905092915050565b60608160008582866104d082600261130a565b926104dd9392919061131d565b6104e691611347565b60f01c90506104f660028361130a565b91508061ffff1667ffffffffffffffff81111561051557610515610f56565b60405190808252806020026020018201604052801561059c57816020015b6040805160e0810182526000808252602080830182905292820181905260608083018290526080830182905260a083019190915260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816105335790505b50925060005b8161ffff168161ffff1610156107335760008787858181106105c6576105c66112ac565b919091013560f81c91506105dd905060018561130a565b935060ff811660011461061c576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600088858961062c82600261130a565b926106399392919061131d565b61064291611347565b60f01c905061065260028661130a565b9450600089868a61066482600261130a565b926106719392919061131d565b61067a91611347565b60f01c905061068a60028761130a565b95507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61ffff8216016106f6576000806106c68c8c8a87610996565b9150915080975081898761ffff16815181106106e4576106e46112ac565b60200260200101819052505050610728565b6040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050506001016105a2565b5050935093915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152816000858583818110610784576107846112ac565b919091013560f81c915061079b905060018361130a565b915060ff81166001146107da576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008683876107ea82600261130a565b926107f79392919061131d565b61080091611347565b60f01c905061081060028461130a565b925061ffff8116600114610850576040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b868684818110610862576108626112ac565b919091013560f81c85525061087860018461130a565b925086838761088882600461130a565b926108959392919061131d565b61089e9161165f565b60e01c60208501526108b160048461130a565b92508686848181106108c5576108c56112ac565b600192013560f81c82146040870152506108df908461130a565b92508683876108ef82600861130a565b926108fc9392919061131d565b610905916116a5565b60c01c606085015261091860088461130a565b925086838761092882600261130a565b926109359392919061131d565b61093e91611347565b60f01c608085015261095160028461130a565b925086838761096182601461130a565b9261096e9392919061131d565b610977916116eb565b60601c60a085015261098a60148461130a565b92505050935093915050565b6040805160e08101825260006020820181905291810182905260608082018390526080820183905260a0820183905260c082015261ffff831681529083908682876109e282600261130a565b926109ef9392919061131d565b6109f891611347565b60f01c9050610a0860028361130a565b9150868287610a1882600461130a565b92610a259392919061131d565b610a2e9161165f565b60e01c6020840152610a4160048361130a565b9150868683818110610a5557610a556112ac565b600192013560f81c8214604086015250610a6f908361130a565b9150868287610a7f82600861130a565b92610a8c9392919061131d565b610a95916116a5565b60c01c6060840152610aa860088361130a565b9150868287610ab882600261130a565b92610ac59392919061131d565b610ace91611347565b60f01c6080840152610ae160028361130a565b9150868287610af182601461130a565b92610afe9392919061131d565b610b07916116eb565b60601c60a0840152610b1a60148361130a565b91506000610b29602383611731565b9050878388610b3c61ffff85168361130a565b92610b499392919061131d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060c0850152610b9061ffff82168461130a565b9250505094509492505050565b803561ffff81168114610baf57600080fd5b919050565b60008083601f840112610bc657600080fd5b50813567ffffffffffffffff811115610bde57600080fd5b6020830191508360208260051b8501011115610bf957600080fd5b9250929050565b600080600060408486031215610c1557600080fd5b610c1e84610b9d565b9250602084013567ffffffffffffffff811115610c3a57600080fd5b610c4686828701610bb4565b9497909650939450505050565b60005b83811015610c6e578181015183820152602001610c56565b50506000910152565b60008151808452610c8f816020860160208601610c53565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610cd46020830184610c77565b9392505050565b600080600080848603610100811215610cf357600080fd5b610cfc86610b9d565b9450602086013567ffffffffffffffff811115610d1857600080fd5b610d2488828901610bb4565b90955093505060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215610d5a57600080fd5b509295919450926040019150565b60008060208385031215610d7b57600080fd5b823567ffffffffffffffff80821115610d9357600080fd5b818501915085601f830112610da757600080fd5b813581811115610db657600080fd5b866020828501011115610dc857600080fd5b60209290920196919550909350505050565b61ffff84811682526101006020808401829052855191840182905260009261012080860193600581901b87019091019290888201865b82811015610edb577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee0898703018752815160e086825116885263ffffffff8683015116868901526040808301511515818a015250606080830151610e7f828b018267ffffffffffffffff169052565b505060808281015161ffff169089015260a08083015173ffffffffffffffffffffffffffffffffffffffff169089015260c091820151918801819052610ec781890183610c77565b988601989750505090830190600101610e10565b505050505080925050506100b9604083018460ff815116825263ffffffff602082015116602083015260408101511515604083015267ffffffffffffffff606082015116606083015261ffff608082015116608083015273ffffffffffffffffffffffffffffffffffffffff60a08201511660a08301525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715610fa857610fa8610f56565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610ff557610ff5610f56565b604052919050565b803563ffffffff81168114610baf57600080fd5b80358015158114610baf57600080fd5b803567ffffffffffffffff81168114610baf57600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610baf57600080fd5b600082601f83011261106e57600080fd5b813567ffffffffffffffff81111561108857611088610f56565b6110b960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601610fae565b8181528460208386010111156110ce57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff8084111561110657611106610f56565b8360051b6020611117818301610fae565b86815291850191818101903684111561112f57600080fd5b865b848110156111f9578035868111156111495760008081fd5b880160e036829003121561115d5760008081fd5b611165610f85565b61116e82610b9d565b815261117b868301610ffd565b86820152604061118c818401611011565b90820152606061119d838201611021565b9082015260806111ae838201610b9d565b9082015260a06111bf838201611039565b9082015260c082810135898111156111d75760008081fd5b6111e33682860161105d565b9183019190915250845250918301918301611131565b50979650505050505050565b600060c0828403121561121757600080fd5b60405160c0810181811067ffffffffffffffff8211171561123a5761123a610f56565b604052823560ff8116811461124e57600080fd5b815261125c60208401610ffd565b602082015261126d60408401611011565b604082015261127e60608401611021565b606082015261128f60808401610b9d565b60808201526112a060a08401611039565b60a08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156101dc576101dc6112db565b6000808585111561132d57600080fd5b8386111561133a57600080fd5b5050820193919092039150565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156113875780818660020360031b1b83161692505b505092915050565b600087516113a1818460208c01610c53565b60f89790971b7fff00000000000000000000000000000000000000000000000000000000000000169190960190815260f094851b7fffff000000000000000000000000000000000000000000000000000000000000908116600183015293851b841660038201529190931b909116600582015260e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166007820152600b0192915050565b6000875161145c818460208c01610c53565b808301905087151560f81b81527fffffffffffffffff0000000000000000000000000000000000000000000000008760c01b1660018201527fffff0000000000000000000000000000000000000000000000000000000000008660f01b1660098201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16600b82015283516114fd81601f840160208801610c53565b01601f0198975050505050505050565b60008a5161151f818460208f01610c53565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008b60f01b166001830152808a60f81b166003830152507fffffffff000000000000000000000000000000000000000000000000000000008860e01b16600482015286151560f81b60088201526115eb600982018760c01b7fffffffffffffffff000000000000000000000000000000000000000000000000169052565b61161c601182018660f01b7fffff000000000000000000000000000000000000000000000000000000000000169052565b61164d601382018560601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b6027019b9a5050505050505050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156113875760049490940360031b84901b1690921692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156113875760089490940360031b84901b1690921692915050565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156113875760149490940360031b84901b1690921692915050565b61ffff82811682821603908082111561174c5761174c6112db565b509291505056fea264697066735822122089ce3c73d5ae2293e44ab660075162be2b0718558719317afe71d9890663897364736f6c63430008160033",
274
+ "bytecode": "0x608060405234801561001057600080fd5b50611789806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80636fbffd35146100465780639c64e2451461006f578063e5c5e9a314610082575b600080fd5b610059610054366004610c00565b6100a4565b6040516100669190610cc1565b60405180910390f35b61005961007d366004610cdb565b6100c1565b610095610090366004610d68565b6100ee565b60405161006693929190610dda565b60606100b9846100b484866110eb565b610138565b949350505050565b60606100e5856100d185876110eb565b6100e036869003860186611205565b6101e2565b95945050505050565b6040805160c08101825260008082526020820181905291810182905260608181018390526080820183905260a082018390529061012b858561020e565b9250925092509250925092565b60606000600184610149855161031e565b6040517fffff00000000000000000000000000000000000000000000000000000000000060f094851b8116602083015292841b83166022820152921b166024820152602601604051602081830303815290604052905060005b83518110156101d8576101ce828583815181106101c1576101c16112ac565b60200260200101516103ba565b91506001016101a2565b5090505b92915050565b606060006101f08585610138565b9050826020015163ffffffff166000146100b9576100e5818461046a565b6040805160c08101825260008082526020820181905291810182905260608181018390526080820183905260a082018390529060008086818761025282600261130a565b9261025f9392919061131d565b61026891611347565b60f01c905061027860028361130a565b915061ffff81166001146102b8576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8682876102c682600261130a565b926102d39392919061131d565b6102dc91611347565b60f01c94506102ec60028361130a565b91506102f98787846104bd565b9094509150858210156103155761031187878461073d565b5092505b50509250925092565b600061ffff8211156103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f3620626974730000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b5090565b60606000836001846000015160016103e28760c001515160236103dd919061130a565b61031e565b6020808901516040516103fa9796959493920161138f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252908501516060860151608087015160a088015160c08901519496506104529587959060200161144a565b60405160208183030381529060405291505092915050565b606082600180846000015185602001518660400151876060015188608001518960a001516040516020016104a69998979695949392919061150d565b604051602081830303815290604052905092915050565b60608160008582866104d082600261130a565b926104dd9392919061131d565b6104e691611347565b60f01c90506104f660028361130a565b91508061ffff1667ffffffffffffffff81111561051557610515610f56565b60405190808252806020026020018201604052801561059c57816020015b6040805160e0810182526000808252602080830182905292820181905260608083018290526080830182905260a083019190915260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816105335790505b50925060005b8161ffff168161ffff1610156107335760008787858181106105c6576105c66112ac565b919091013560f81c91506105dd905060018561130a565b935060ff811660011461061c576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600088858961062c82600261130a565b926106399392919061131d565b61064291611347565b60f01c905061065260028661130a565b9450600089868a61066482600261130a565b926106719392919061131d565b61067a91611347565b60f01c905061068a60028761130a565b95507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61ffff8216016106f6576000806106c68c8c8a87610996565b9150915080975081898761ffff16815181106106e4576106e46112ac565b60200260200101819052505050610728565b6040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050506001016105a2565b5050935093915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152816000858583818110610784576107846112ac565b919091013560f81c915061079b905060018361130a565b915060ff81166001146107da576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008683876107ea82600261130a565b926107f79392919061131d565b61080091611347565b60f01c905061081060028461130a565b925061ffff8116600114610850576040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b868684818110610862576108626112ac565b919091013560f81c85525061087860018461130a565b925086838761088882600461130a565b926108959392919061131d565b61089e9161165f565b60e01c60208501526108b160048461130a565b92508686848181106108c5576108c56112ac565b600192013560f81c82146040870152506108df908461130a565b92508683876108ef82600861130a565b926108fc9392919061131d565b610905916116a5565b60c01c606085015261091860088461130a565b925086838761092882600261130a565b926109359392919061131d565b61093e91611347565b60f01c608085015261095160028461130a565b925086838761096182601461130a565b9261096e9392919061131d565b610977916116eb565b60601c60a085015261098a60148461130a565b92505050935093915050565b6040805160e08101825260006020820181905291810182905260608082018390526080820183905260a0820183905260c082015261ffff831681529083908682876109e282600261130a565b926109ef9392919061131d565b6109f891611347565b60f01c9050610a0860028361130a565b9150868287610a1882600461130a565b92610a259392919061131d565b610a2e9161165f565b60e01c6020840152610a4160048361130a565b9150868683818110610a5557610a556112ac565b600192013560f81c8214604086015250610a6f908361130a565b9150868287610a7f82600861130a565b92610a8c9392919061131d565b610a95916116a5565b60c01c6060840152610aa860088361130a565b9150868287610ab882600261130a565b92610ac59392919061131d565b610ace91611347565b60f01c6080840152610ae160028361130a565b9150868287610af182601461130a565b92610afe9392919061131d565b610b07916116eb565b60601c60a0840152610b1a60148361130a565b91506000610b29602383611731565b9050878388610b3c61ffff85168361130a565b92610b499392919061131d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060c0850152610b9061ffff82168461130a565b9250505094509492505050565b803561ffff81168114610baf57600080fd5b919050565b60008083601f840112610bc657600080fd5b50813567ffffffffffffffff811115610bde57600080fd5b6020830191508360208260051b8501011115610bf957600080fd5b9250929050565b600080600060408486031215610c1557600080fd5b610c1e84610b9d565b9250602084013567ffffffffffffffff811115610c3a57600080fd5b610c4686828701610bb4565b9497909650939450505050565b60005b83811015610c6e578181015183820152602001610c56565b50506000910152565b60008151808452610c8f816020860160208601610c53565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610cd46020830184610c77565b9392505050565b600080600080848603610100811215610cf357600080fd5b610cfc86610b9d565b9450602086013567ffffffffffffffff811115610d1857600080fd5b610d2488828901610bb4565b90955093505060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215610d5a57600080fd5b509295919450926040019150565b60008060208385031215610d7b57600080fd5b823567ffffffffffffffff80821115610d9357600080fd5b818501915085601f830112610da757600080fd5b813581811115610db657600080fd5b866020828501011115610dc857600080fd5b60209290920196919550909350505050565b61ffff84811682526101006020808401829052855191840182905260009261012080860193600581901b87019091019290888201865b82811015610edb577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee0898703018752815160e086825116885263ffffffff8683015116868901526040808301511515818a015250606080830151610e7f828b018267ffffffffffffffff169052565b505060808281015161ffff169089015260a08083015173ffffffffffffffffffffffffffffffffffffffff169089015260c091820151918801819052610ec781890183610c77565b988601989750505090830190600101610e10565b505050505080925050506100b9604083018460ff815116825263ffffffff602082015116602083015260408101511515604083015267ffffffffffffffff606082015116606083015261ffff608082015116608083015273ffffffffffffffffffffffffffffffffffffffff60a08201511660a08301525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715610fa857610fa8610f56565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610ff557610ff5610f56565b604052919050565b803563ffffffff81168114610baf57600080fd5b80358015158114610baf57600080fd5b803567ffffffffffffffff81168114610baf57600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610baf57600080fd5b600082601f83011261106e57600080fd5b813567ffffffffffffffff81111561108857611088610f56565b6110b960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601610fae565b8181528460208386010111156110ce57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff8084111561110657611106610f56565b8360051b6020611117818301610fae565b86815291850191818101903684111561112f57600080fd5b865b848110156111f9578035868111156111495760008081fd5b880160e036829003121561115d5760008081fd5b611165610f85565b61116e82610b9d565b815261117b868301610ffd565b86820152604061118c818401611011565b90820152606061119d838201611021565b9082015260806111ae838201610b9d565b9082015260a06111bf838201611039565b9082015260c082810135898111156111d75760008081fd5b6111e33682860161105d565b9183019190915250845250918301918301611131565b50979650505050505050565b600060c0828403121561121757600080fd5b60405160c0810181811067ffffffffffffffff8211171561123a5761123a610f56565b604052823560ff8116811461124e57600080fd5b815261125c60208401610ffd565b602082015261126d60408401611011565b604082015261127e60608401611021565b606082015261128f60808401610b9d565b60808201526112a060a08401611039565b60a08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156101dc576101dc6112db565b6000808585111561132d57600080fd5b8386111561133a57600080fd5b5050820193919092039150565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156113875780818660020360031b1b83161692505b505092915050565b600087516113a1818460208c01610c53565b60f89790971b7fff00000000000000000000000000000000000000000000000000000000000000169190960190815260f094851b7fffff000000000000000000000000000000000000000000000000000000000000908116600183015293851b841660038201529190931b909116600582015260e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166007820152600b0192915050565b6000875161145c818460208c01610c53565b808301905087151560f81b81527fffffffffffffffff0000000000000000000000000000000000000000000000008760c01b1660018201527fffff0000000000000000000000000000000000000000000000000000000000008660f01b1660098201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16600b82015283516114fd81601f840160208801610c53565b01601f0198975050505050505050565b60008a5161151f818460208f01610c53565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008b60f01b166001830152808a60f81b166003830152507fffffffff000000000000000000000000000000000000000000000000000000008860e01b16600482015286151560f81b60088201526115eb600982018760c01b7fffffffffffffffff000000000000000000000000000000000000000000000000169052565b61161c601182018660f01b7fffff000000000000000000000000000000000000000000000000000000000000169052565b61164d601382018560601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b6027019b9a5050505050505050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156113875760049490940360031b84901b1690921692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156113875760089490940360031b84901b1690921692915050565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156113875760149490940360031b84901b1690921692915050565b61ffff82811682821603908082111561174c5761174c6112db565b509291505056fea264697066735822122064c2dc04b5175afa78e8d2f1d56acceb59bf5a26225e6577db975e3dbd3fed5164736f6c63430008160033",
275
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80636fbffd35146100465780639c64e2451461006f578063e5c5e9a314610082575b600080fd5b610059610054366004610c00565b6100a4565b6040516100669190610cc1565b60405180910390f35b61005961007d366004610cdb565b6100c1565b610095610090366004610d68565b6100ee565b60405161006693929190610dda565b60606100b9846100b484866110eb565b610138565b949350505050565b60606100e5856100d185876110eb565b6100e036869003860186611205565b6101e2565b95945050505050565b6040805160c08101825260008082526020820181905291810182905260608181018390526080820183905260a082018390529061012b858561020e565b9250925092509250925092565b60606000600184610149855161031e565b6040517fffff00000000000000000000000000000000000000000000000000000000000060f094851b8116602083015292841b83166022820152921b166024820152602601604051602081830303815290604052905060005b83518110156101d8576101ce828583815181106101c1576101c16112ac565b60200260200101516103ba565b91506001016101a2565b5090505b92915050565b606060006101f08585610138565b9050826020015163ffffffff166000146100b9576100e5818461046a565b6040805160c08101825260008082526020820181905291810182905260608181018390526080820183905260a082018390529060008086818761025282600261130a565b9261025f9392919061131d565b61026891611347565b60f01c905061027860028361130a565b915061ffff81166001146102b8576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8682876102c682600261130a565b926102d39392919061131d565b6102dc91611347565b60f01c94506102ec60028361130a565b91506102f98787846104bd565b9094509150858210156103155761031187878461073d565b5092505b50509250925092565b600061ffff8211156103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f3620626974730000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b5090565b60606000836001846000015160016103e28760c001515160236103dd919061130a565b61031e565b6020808901516040516103fa9796959493920161138f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252908501516060860151608087015160a088015160c08901519496506104529587959060200161144a565b60405160208183030381529060405291505092915050565b606082600180846000015185602001518660400151876060015188608001518960a001516040516020016104a69998979695949392919061150d565b604051602081830303815290604052905092915050565b60608160008582866104d082600261130a565b926104dd9392919061131d565b6104e691611347565b60f01c90506104f660028361130a565b91508061ffff1667ffffffffffffffff81111561051557610515610f56565b60405190808252806020026020018201604052801561059c57816020015b6040805160e0810182526000808252602080830182905292820181905260608083018290526080830182905260a083019190915260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816105335790505b50925060005b8161ffff168161ffff1610156107335760008787858181106105c6576105c66112ac565b919091013560f81c91506105dd905060018561130a565b935060ff811660011461061c576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600088858961062c82600261130a565b926106399392919061131d565b61064291611347565b60f01c905061065260028661130a565b9450600089868a61066482600261130a565b926106719392919061131d565b61067a91611347565b60f01c905061068a60028761130a565b95507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61ffff8216016106f6576000806106c68c8c8a87610996565b9150915080975081898761ffff16815181106106e4576106e46112ac565b60200260200101819052505050610728565b6040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050506001016105a2565b5050935093915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152816000858583818110610784576107846112ac565b919091013560f81c915061079b905060018361130a565b915060ff81166001146107da576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008683876107ea82600261130a565b926107f79392919061131d565b61080091611347565b60f01c905061081060028461130a565b925061ffff8116600114610850576040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b868684818110610862576108626112ac565b919091013560f81c85525061087860018461130a565b925086838761088882600461130a565b926108959392919061131d565b61089e9161165f565b60e01c60208501526108b160048461130a565b92508686848181106108c5576108c56112ac565b600192013560f81c82146040870152506108df908461130a565b92508683876108ef82600861130a565b926108fc9392919061131d565b610905916116a5565b60c01c606085015261091860088461130a565b925086838761092882600261130a565b926109359392919061131d565b61093e91611347565b60f01c608085015261095160028461130a565b925086838761096182601461130a565b9261096e9392919061131d565b610977916116eb565b60601c60a085015261098a60148461130a565b92505050935093915050565b6040805160e08101825260006020820181905291810182905260608082018390526080820183905260a0820183905260c082015261ffff831681529083908682876109e282600261130a565b926109ef9392919061131d565b6109f891611347565b60f01c9050610a0860028361130a565b9150868287610a1882600461130a565b92610a259392919061131d565b610a2e9161165f565b60e01c6020840152610a4160048361130a565b9150868683818110610a5557610a556112ac565b600192013560f81c8214604086015250610a6f908361130a565b9150868287610a7f82600861130a565b92610a8c9392919061131d565b610a95916116a5565b60c01c6060840152610aa860088361130a565b9150868287610ab882600261130a565b92610ac59392919061131d565b610ace91611347565b60f01c6080840152610ae160028361130a565b9150868287610af182601461130a565b92610afe9392919061131d565b610b07916116eb565b60601c60a0840152610b1a60148361130a565b91506000610b29602383611731565b9050878388610b3c61ffff85168361130a565b92610b499392919061131d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060c0850152610b9061ffff82168461130a565b9250505094509492505050565b803561ffff81168114610baf57600080fd5b919050565b60008083601f840112610bc657600080fd5b50813567ffffffffffffffff811115610bde57600080fd5b6020830191508360208260051b8501011115610bf957600080fd5b9250929050565b600080600060408486031215610c1557600080fd5b610c1e84610b9d565b9250602084013567ffffffffffffffff811115610c3a57600080fd5b610c4686828701610bb4565b9497909650939450505050565b60005b83811015610c6e578181015183820152602001610c56565b50506000910152565b60008151808452610c8f816020860160208601610c53565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610cd46020830184610c77565b9392505050565b600080600080848603610100811215610cf357600080fd5b610cfc86610b9d565b9450602086013567ffffffffffffffff811115610d1857600080fd5b610d2488828901610bb4565b90955093505060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215610d5a57600080fd5b509295919450926040019150565b60008060208385031215610d7b57600080fd5b823567ffffffffffffffff80821115610d9357600080fd5b818501915085601f830112610da757600080fd5b813581811115610db657600080fd5b866020828501011115610dc857600080fd5b60209290920196919550909350505050565b61ffff84811682526101006020808401829052855191840182905260009261012080860193600581901b87019091019290888201865b82811015610edb577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee0898703018752815160e086825116885263ffffffff8683015116868901526040808301511515818a015250606080830151610e7f828b018267ffffffffffffffff169052565b505060808281015161ffff169089015260a08083015173ffffffffffffffffffffffffffffffffffffffff169089015260c091820151918801819052610ec781890183610c77565b988601989750505090830190600101610e10565b505050505080925050506100b9604083018460ff815116825263ffffffff602082015116602083015260408101511515604083015267ffffffffffffffff606082015116606083015261ffff608082015116608083015273ffffffffffffffffffffffffffffffffffffffff60a08201511660a08301525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715610fa857610fa8610f56565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610ff557610ff5610f56565b604052919050565b803563ffffffff81168114610baf57600080fd5b80358015158114610baf57600080fd5b803567ffffffffffffffff81168114610baf57600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610baf57600080fd5b600082601f83011261106e57600080fd5b813567ffffffffffffffff81111561108857611088610f56565b6110b960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601610fae565b8181528460208386010111156110ce57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff8084111561110657611106610f56565b8360051b6020611117818301610fae565b86815291850191818101903684111561112f57600080fd5b865b848110156111f9578035868111156111495760008081fd5b880160e036829003121561115d5760008081fd5b611165610f85565b61116e82610b9d565b815261117b868301610ffd565b86820152604061118c818401611011565b90820152606061119d838201611021565b9082015260806111ae838201610b9d565b9082015260a06111bf838201611039565b9082015260c082810135898111156111d75760008081fd5b6111e33682860161105d565b9183019190915250845250918301918301611131565b50979650505050505050565b600060c0828403121561121757600080fd5b60405160c0810181811067ffffffffffffffff8211171561123a5761123a610f56565b604052823560ff8116811461124e57600080fd5b815261125c60208401610ffd565b602082015261126d60408401611011565b604082015261127e60608401611021565b606082015261128f60808401610b9d565b60808201526112a060a08401611039565b60a08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156101dc576101dc6112db565b6000808585111561132d57600080fd5b8386111561133a57600080fd5b5050820193919092039150565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156113875780818660020360031b1b83161692505b505092915050565b600087516113a1818460208c01610c53565b60f89790971b7fff00000000000000000000000000000000000000000000000000000000000000169190960190815260f094851b7fffff000000000000000000000000000000000000000000000000000000000000908116600183015293851b841660038201529190931b909116600582015260e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166007820152600b0192915050565b6000875161145c818460208c01610c53565b808301905087151560f81b81527fffffffffffffffff0000000000000000000000000000000000000000000000008760c01b1660018201527fffff0000000000000000000000000000000000000000000000000000000000008660f01b1660098201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16600b82015283516114fd81601f840160208801610c53565b01601f0198975050505050505050565b60008a5161151f818460208f01610c53565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008b60f01b166001830152808a60f81b166003830152507fffffffff000000000000000000000000000000000000000000000000000000008860e01b16600482015286151560f81b60088201526115eb600982018760c01b7fffffffffffffffff000000000000000000000000000000000000000000000000169052565b61161c601182018660f01b7fffff000000000000000000000000000000000000000000000000000000000000169052565b61164d601382018560601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b6027019b9a5050505050505050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156113875760049490940360031b84901b1690921692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156113875760089490940360031b84901b1690921692915050565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156113875760149490940360031b84901b1690921692915050565b61ffff82811682821603908082111561174c5761174c6112db565b509291505056fea264697066735822122064c2dc04b5175afa78e8d2f1d56acceb59bf5a26225e6577db975e3dbd3fed5164736f6c63430008160033",
276
276
  "linkReferences": {},
277
277
  "deployedLinkReferences": {}
278
278
  }
@@ -836,8 +836,8 @@
836
836
  "type": "receive"
837
837
  }
838
838
  ],
839
- "bytecode": "0x60c06040523480156200001157600080fd5b5060405162002d2f38038062002d2f83398101604081905262000034916200019f565b80338181818162000045816200014f565b6001600160a01b0380831660805281166200007357604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000bb57600080fd5b505af1158015620000d0573d6000803e3d6000fd5b50505050505050505050806001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000119573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013f9190620001d1565b63ffffffff1660a05250620001f9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620001b257600080fd5b81516001600160a01b0381168114620001ca57600080fd5b9392505050565b600060208284031215620001e457600080fd5b815163ffffffff81168114620001ca57600080fd5b60805160a051612adf620002506000396000818161021a0152610b3c015260008181610263015281816105b501528181610c1d01528181611250015281816113d00152818161162d01526117260152612adf6000f3fe6080604052600436106101615760003560e01c806382413eac116100bf578063ca5eb5e111610079578063f0a9e48111610056578063f0a9e481146104a8578063f2fde38b146104c8578063ff7bd03d146104e857005b8063ca5eb5e114610448578063e60c287c14610468578063eba1cf081461048857005b8063a798280f116100a7578063a798280f146103d7578063a7e0231f14610404578063bb0b6a531461041b57005b806382413eac1461037c5780638da5cb5b146103ac57005b8063416ecebf1161011b578063715018a6116100f8578063715018a6146102df57806373494d2e146102f45780637d25a05e1461034057005b8063416ecebf146102085780635e280f1114610251578063695a2fa8146102aa57005b806313137d651161014957806313137d65146101b357806317442b70146101c65780633400288b146101e857005b80630119024e1461016a57806306661abd1461019d57005b3661016857005b005b34801561017657600080fd5b5061018a610185366004611ce2565b610508565b6040519081526020015b60405180910390f35b3480156101a957600080fd5b5061018a60025481565b6101686101c1366004611d7e565b6105b3565b3480156101d257600080fd5b5060408051600181526002602082015201610194565b3480156101f457600080fd5b50610168610203366004611e37565b6106ad565b34801561021457600080fd5b5061023c7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610194565b34801561025d57600080fd5b506102857f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610194565b3480156102b657600080fd5b506102ca6102c53660046120d1565b6106c3565b60408051928352602083019190915201610194565b3480156102eb57600080fd5b50610168610731565b6103076103023660046120d1565b610745565b604080518251815260208084015167ffffffffffffffff1681830152928201518051928201929092529101516060820152608001610194565b34801561034c57600080fd5b5061036361035b366004611e37565b600092915050565b60405167ffffffffffffffff9091168152602001610194565b34801561038857600080fd5b5061039c61039736600461216f565b6107da565b6040519015158152602001610194565b3480156103b857600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610285565b3480156103e357600080fd5b506103f76103f23660046121d6565b6107fc565b60405161019491906122a3565b34801561041057600080fd5b506101686000600255565b34801561042757600080fd5b5061018a6104363660046122bd565b60016020526000908152604090205481565b34801561045457600080fd5b506101686104633660046122d8565b610bd0565b34801561047457600080fd5b506103f76104833660046122f5565b610c7c565b34801561049457600080fd5b506103f76104a3366004612361565b610d7e565b3480156104b457600080fd5b506101686104c33660046123fb565b610ed8565b3480156104d457600080fd5b506101686104e33660046122d8565b610ef6565b3480156104f457600080fd5b5061039c610503366004612432565b610fad565b60008160090361059f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c696420636f756e742061646460448201527f6974696f6e00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b816002546105ad919061247d565b92915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610624576040517f91ac5e4f000000000000000000000000000000000000000000000000000000008152336004820152602401610596565b6020870180359061063e90610639908a6122bd565b610fe3565b146106955761065060208801886122bd565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610596565b6106a487878787878787611038565b50505050505050565b6106b5611164565b6106bf82826111e5565b5050565b60008060006106d38888886107fc565b905060006107188a8388888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061123a915050565b8051602090910151909b909a5098505050505050505050565b610739611164565b6107436000611328565b565b61074d611c9a565b600061075a8787876107fc565b905060016002600082825461076f919061247d565b925050819055506107ce888286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080518082019091523481526020810191909152925033915061139d9050565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b60606000835111610869576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4c7a52656164436f756e7465723a20656d7074792072657175657374730000006044820152606401610596565b6000835167ffffffffffffffff81111561088557610885611e73565b60405190808252806020026020018201604052801561090c57816020015b6040805160e0810182526000808252602080830182905292820181905260608083018290526080830182905260a083019190915260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816108a35790505b50905060005b8451811015610a7657600085828151811061092f5761092f612490565b602002602001015190506040518060e00160405280826000015161ffff168152602001826020015163ffffffff168152602001826040015115158152602001826060015167ffffffffffffffff168152602001826080015161ffff1681526020018260a0015173ffffffffffffffffffffffffffffffffffffffff168152602001630119024e60e01b8360c001516040516024016109cf91815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290528351849084908110610a6257610a62612490565b602090810291909101015250600101610912565b508251600360ff9091161115610b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4c7a52656164436f756e7465723a20696e76616c696420636f6d70757465207460448201527f79706500000000000000000000000000000000000000000000000000000000006064820152608401610596565b60006040518060c00160405280856000015160ff168152602001600360ff16866000015160ff1614610b60577f0000000000000000000000000000000000000000000000000000000000000000610b63565b60005b63ffffffff168152602001856060015115158152602001856040015167ffffffffffffffff168152602001856020015161ffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681525090506000610bc58784846114aa565b979650505050505050565b610bd8611164565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610c6157600080fd5b505af1158015610c75573d6000803e3d6000fd5b5050505050565b606060208214610d0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e67746800000000000000000000000000000000000000000000000000006064820152608401610596565b6000610d1a86866114d6565b90506000610d2a84860186611ce2565b9050610d38826103e86124bf565b61ffff16610d4782606461247d565b610d51919061247d565b604051602001610d6391815260200190565b60405160208183030381529060405292505050949350505050565b60606000805b83811015610e8b57848482818110610d9e57610d9e612490565b9050602002810190610db091906124e5565b9050602014610e41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e67746800000000000000000000000000000000000000000000000000006064820152608401610596565b6000858583818110610e5557610e55612490565b9050602002810190610e6791906124e5565b810190610e749190611ce2565b9050610e80818461247d565b925050600101610d84565b50610e986127108261247d565b90506000610ea68787611570565b9050610eb961ffff8216620186a061254a565b610ec3908361247d565b915081604051602001610d6391815260200190565b610ee0611164565b6106bf8282610ef05760006111e5565b306111e5565b610efe611164565b73ffffffffffffffffffffffffffffffffffffffff8116610fa1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610596565b610faa81611328565b50565b6000602082018035906001908390610fc590866122bd565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff8116600090815260016020526040812054806105ad576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610596565b611043602085612561565b156110d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c6964206d657373616765206c60448201527f656e6774680000000000000000000000000000000000000000000000000000006064820152608401610596565b6000805b85811015611122578681876110ea82602061247d565b926110f79392919061259c565b8101906111049190611ce2565b61110e908361247d565b915061111b60208261247d565b90506110d4565b50700100000000000000000000000000000000600254106111435760006002555b8060026000828254611155919061247d565b90915550505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610596565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b60408051808201909152600080825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff1681526020016112aa89610fe3565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016112df9291906125c6565b6040805180830381865afa1580156112fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131f91906126b9565b95945050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6113a5611c9a565b60006113b484600001516115e8565b6020850151909150156113ce576113ce8460200151611629565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff16815260200161142b8c610fe3565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016114679291906125c6565b60806040518083038185885af1158015611485573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bc591906126d5565b606060006114b8858561174b565b9050826020015163ffffffff166000146107f45761131f81846117f3565b60008080848482816114ea576114ea612490565b919091013560f81c9150611501905060018361247d565b915060ff8116600114611540576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84828561154e82600261247d565b9261155b9392919061259c565b6115649161273d565b60f01c95945050505050565b6000808084818561158282600261247d565b9261158f9392919061259c565b6115989161273d565b60f01c90506115a860028361247d565b915061ffff8116600114611540576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000813414611625576040517f9f704120000000000000000000000000000000000000000000000000000000008152346004820152602401610596565b5090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ba9190612783565b905073ffffffffffffffffffffffffffffffffffffffff8116611709576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106bf73ffffffffffffffffffffffffffffffffffffffff8216337f000000000000000000000000000000000000000000000000000000000000000085611846565b6060600060018461175c85516118e1565b6040517fffff00000000000000000000000000000000000000000000000000000000000060f094851b8116602083015292841b83166022820152921b166024820152602601604051602081830303815290604052905060005b83518110156117eb576117e1828583815181106117d4576117d4612490565b6020026020010151611975565b91506001016117b5565b509392505050565b606082600180846000015185602001518660400151876060015188608001518960a0015160405160200161182f999897969594939291906127a0565b604051602081830303815290604052905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526118db908590611a25565b50505050565b600061ffff821115611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610596565b606060008360018460000151600161199d8760c00151516023611998919061247d565b6118e1565b6020808901516040516119b5979695949392016128f2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252908501516060860151608087015160a088015160c0890151949650611a0d958795906020016129ad565b60405160208183030381529060405291505092915050565b6000611a87826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611b399092919063ffffffff16565b9050805160001480611aa8575080806020019051810190611aa89190612a70565b611b34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610596565b505050565b60606107f48484600085856000808673ffffffffffffffffffffffffffffffffffffffff168587604051611b6d9190612a8d565b60006040518083038185875af1925050503d8060008114611baa576040519150601f19603f3d011682016040523d82523d6000602084013e611baf565b606091505b5091509150610bc58783838760608315611c51578251600003611c4a5773ffffffffffffffffffffffffffffffffffffffff85163b611c4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610596565b50816107f4565b6107f48383815115611c665781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059691906122a3565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001611cdd604051806040016040528060008152602001600081525090565b905290565b600060208284031215611cf457600080fd5b5035919050565b600060608284031215611d0d57600080fd5b50919050565b60008083601f840112611d2557600080fd5b50813567ffffffffffffffff811115611d3d57600080fd5b602083019150836020828501011115611d5557600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114610faa57600080fd5b600080600080600080600060e0888a031215611d9957600080fd5b611da38989611cfb565b965060608801359550608088013567ffffffffffffffff80821115611dc757600080fd5b611dd38b838c01611d13565b909750955060a08a01359150611de882611d5c565b90935060c08901359080821115611dfe57600080fd5b50611e0b8a828b01611d13565b989b979a50959850939692959293505050565b803563ffffffff81168114611e3257600080fd5b919050565b60008060408385031215611e4a57600080fd5b611e5383611e1e565b946020939093013593505050565b803561ffff81168114611e3257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715611ec557611ec5611e73565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611f1257611f12611e73565b604052919050565b8015158114610faa57600080fd5b67ffffffffffffffff81168114610faa57600080fd5b600082601f830112611f4f57600080fd5b8135602067ffffffffffffffff821115611f6b57611f6b611e73565b611f79818360051b01611ecb565b82815260e09283028501820192828201919087851115611f9857600080fd5b8387015b858110156120375781818a031215611fb45760008081fd5b611fbc611ea2565b611fc582611e61565b8152611fd2868301611e1e565b86820152604080830135611fe581611f1a565b90820152606082810135611ff881611f28565b908201526080612009838201611e61565b9082015260a08281013561201c81611d5c565b9082015260c082810135908201528452928401928101611f9c565b5090979650505050505050565b60006080828403121561205657600080fd5b6040516080810181811067ffffffffffffffff8211171561207957612079611e73565b604052905080823560ff8116811461209057600080fd5b815261209e60208401611e61565b602082015260408301356120b181611f28565b604082015260608301356120c481611f1a565b6060919091015292915050565b60008060008060008061010087890312156120eb57600080fd5b6120f487611e1e565b955061210260208801611e61565b9450604087013567ffffffffffffffff8082111561211f57600080fd5b61212b8a838b01611f3e565b955061213a8a60608b01612044565b945060e089013591508082111561215057600080fd5b5061215d89828a01611d13565b979a9699509497509295939492505050565b60008060008060a0858703121561218557600080fd5b61218f8686611cfb565b9350606085013567ffffffffffffffff8111156121ab57600080fd5b6121b787828801611d13565b90945092505060808501356121cb81611d5c565b939692955090935050565b600080600060c084860312156121eb57600080fd5b6121f484611e61565b9250602084013567ffffffffffffffff81111561221057600080fd5b61221c86828701611f3e565b92505061222c8560408601612044565b90509250925092565b60005b83811015612250578181015183820152602001612238565b50506000910152565b60008151808452612271816020860160208601612235565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006122b66020830184612259565b9392505050565b6000602082840312156122cf57600080fd5b6122b682611e1e565b6000602082840312156122ea57600080fd5b81356122b681611d5c565b6000806000806040858703121561230b57600080fd5b843567ffffffffffffffff8082111561232357600080fd5b61232f88838901611d13565b9096509450602087013591508082111561234857600080fd5b5061235587828801611d13565b95989497509550505050565b6000806000806040858703121561237757600080fd5b843567ffffffffffffffff8082111561238f57600080fd5b61239b88838901611d13565b909650945060208701359150808211156123b457600080fd5b818701915087601f8301126123c857600080fd5b8135818111156123d757600080fd5b8860208260051b85010111156123ec57600080fd5b95989497505060200194505050565b6000806040838503121561240e57600080fd5b61241783611e1e565b9150602083013561242781611f1a565b809150509250929050565b60006060828403121561244457600080fd5b6122b68383611cfb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156105ad576105ad61244e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b61ffff8181168382160280821691908281146124dd576124dd61244e565b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261251a57600080fd5b83018035915067ffffffffffffffff82111561253557600080fd5b602001915036819003821315611d5557600080fd5b80820281158282048414176105ad576105ad61244e565b600082612597577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b600080858511156125ac57600080fd5b838611156125b957600080fd5b5050820193919092039150565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526125fc60e0840182612259565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526126378282612259565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b60006040828403121561267c57600080fd5b6040516040810181811067ffffffffffffffff8211171561269f5761269f611e73565b604052825181526020928301519281019290925250919050565b6000604082840312156126cb57600080fd5b6122b6838361266a565b6000608082840312156126e757600080fd5b6040516060810181811067ffffffffffffffff8211171561270a5761270a611e73565b60405282518152602083015161271f81611f28565b6020820152612731846040850161266a565b60408201529392505050565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156124dd5760029490940360031b84901b1690921692915050565b60006020828403121561279557600080fd5b81516122b681611d5c565b60008a516127b2818460208f01612235565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008b60f01b166001830152808a60f81b166003830152507fffffffff000000000000000000000000000000000000000000000000000000008860e01b16600482015286151560f81b600882015261287e600982018760c01b7fffffffffffffffff000000000000000000000000000000000000000000000000169052565b6128af601182018660f01b7fffff000000000000000000000000000000000000000000000000000000000000169052565b6128e0601382018560601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b6027019b9a5050505050505050505050565b60008751612904818460208c01612235565b60f89790971b7fff00000000000000000000000000000000000000000000000000000000000000169190960190815260f094851b7fffff000000000000000000000000000000000000000000000000000000000000908116600183015293851b841660038201529190931b909116600582015260e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166007820152600b0192915050565b600087516129bf818460208c01612235565b808301905087151560f81b81527fffffffffffffffff0000000000000000000000000000000000000000000000008760c01b1660018201527fffff0000000000000000000000000000000000000000000000000000000000008660f01b1660098201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16600b8201528351612a6081601f840160208801612235565b01601f0198975050505050505050565b600060208284031215612a8257600080fd5b81516122b681611f1a565b60008251612a9f818460208701612235565b919091019291505056fea264697066735822122010a919c5b1e07edadc2a563d83e85f14afabf17ccadcbbae2d3e0cb5495175b664736f6c63430008160033",
840
- "deployedBytecode": "0x6080604052600436106101615760003560e01c806382413eac116100bf578063ca5eb5e111610079578063f0a9e48111610056578063f0a9e481146104a8578063f2fde38b146104c8578063ff7bd03d146104e857005b8063ca5eb5e114610448578063e60c287c14610468578063eba1cf081461048857005b8063a798280f116100a7578063a798280f146103d7578063a7e0231f14610404578063bb0b6a531461041b57005b806382413eac1461037c5780638da5cb5b146103ac57005b8063416ecebf1161011b578063715018a6116100f8578063715018a6146102df57806373494d2e146102f45780637d25a05e1461034057005b8063416ecebf146102085780635e280f1114610251578063695a2fa8146102aa57005b806313137d651161014957806313137d65146101b357806317442b70146101c65780633400288b146101e857005b80630119024e1461016a57806306661abd1461019d57005b3661016857005b005b34801561017657600080fd5b5061018a610185366004611ce2565b610508565b6040519081526020015b60405180910390f35b3480156101a957600080fd5b5061018a60025481565b6101686101c1366004611d7e565b6105b3565b3480156101d257600080fd5b5060408051600181526002602082015201610194565b3480156101f457600080fd5b50610168610203366004611e37565b6106ad565b34801561021457600080fd5b5061023c7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610194565b34801561025d57600080fd5b506102857f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610194565b3480156102b657600080fd5b506102ca6102c53660046120d1565b6106c3565b60408051928352602083019190915201610194565b3480156102eb57600080fd5b50610168610731565b6103076103023660046120d1565b610745565b604080518251815260208084015167ffffffffffffffff1681830152928201518051928201929092529101516060820152608001610194565b34801561034c57600080fd5b5061036361035b366004611e37565b600092915050565b60405167ffffffffffffffff9091168152602001610194565b34801561038857600080fd5b5061039c61039736600461216f565b6107da565b6040519015158152602001610194565b3480156103b857600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610285565b3480156103e357600080fd5b506103f76103f23660046121d6565b6107fc565b60405161019491906122a3565b34801561041057600080fd5b506101686000600255565b34801561042757600080fd5b5061018a6104363660046122bd565b60016020526000908152604090205481565b34801561045457600080fd5b506101686104633660046122d8565b610bd0565b34801561047457600080fd5b506103f76104833660046122f5565b610c7c565b34801561049457600080fd5b506103f76104a3366004612361565b610d7e565b3480156104b457600080fd5b506101686104c33660046123fb565b610ed8565b3480156104d457600080fd5b506101686104e33660046122d8565b610ef6565b3480156104f457600080fd5b5061039c610503366004612432565b610fad565b60008160090361059f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c696420636f756e742061646460448201527f6974696f6e00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b816002546105ad919061247d565b92915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610624576040517f91ac5e4f000000000000000000000000000000000000000000000000000000008152336004820152602401610596565b6020870180359061063e90610639908a6122bd565b610fe3565b146106955761065060208801886122bd565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610596565b6106a487878787878787611038565b50505050505050565b6106b5611164565b6106bf82826111e5565b5050565b60008060006106d38888886107fc565b905060006107188a8388888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061123a915050565b8051602090910151909b909a5098505050505050505050565b610739611164565b6107436000611328565b565b61074d611c9a565b600061075a8787876107fc565b905060016002600082825461076f919061247d565b925050819055506107ce888286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080518082019091523481526020810191909152925033915061139d9050565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b60606000835111610869576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4c7a52656164436f756e7465723a20656d7074792072657175657374730000006044820152606401610596565b6000835167ffffffffffffffff81111561088557610885611e73565b60405190808252806020026020018201604052801561090c57816020015b6040805160e0810182526000808252602080830182905292820181905260608083018290526080830182905260a083019190915260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816108a35790505b50905060005b8451811015610a7657600085828151811061092f5761092f612490565b602002602001015190506040518060e00160405280826000015161ffff168152602001826020015163ffffffff168152602001826040015115158152602001826060015167ffffffffffffffff168152602001826080015161ffff1681526020018260a0015173ffffffffffffffffffffffffffffffffffffffff168152602001630119024e60e01b8360c001516040516024016109cf91815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290528351849084908110610a6257610a62612490565b602090810291909101015250600101610912565b508251600360ff9091161115610b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4c7a52656164436f756e7465723a20696e76616c696420636f6d70757465207460448201527f79706500000000000000000000000000000000000000000000000000000000006064820152608401610596565b60006040518060c00160405280856000015160ff168152602001600360ff16866000015160ff1614610b60577f0000000000000000000000000000000000000000000000000000000000000000610b63565b60005b63ffffffff168152602001856060015115158152602001856040015167ffffffffffffffff168152602001856020015161ffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681525090506000610bc58784846114aa565b979650505050505050565b610bd8611164565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610c6157600080fd5b505af1158015610c75573d6000803e3d6000fd5b5050505050565b606060208214610d0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e67746800000000000000000000000000000000000000000000000000006064820152608401610596565b6000610d1a86866114d6565b90506000610d2a84860186611ce2565b9050610d38826103e86124bf565b61ffff16610d4782606461247d565b610d51919061247d565b604051602001610d6391815260200190565b60405160208183030381529060405292505050949350505050565b60606000805b83811015610e8b57848482818110610d9e57610d9e612490565b9050602002810190610db091906124e5565b9050602014610e41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e67746800000000000000000000000000000000000000000000000000006064820152608401610596565b6000858583818110610e5557610e55612490565b9050602002810190610e6791906124e5565b810190610e749190611ce2565b9050610e80818461247d565b925050600101610d84565b50610e986127108261247d565b90506000610ea68787611570565b9050610eb961ffff8216620186a061254a565b610ec3908361247d565b915081604051602001610d6391815260200190565b610ee0611164565b6106bf8282610ef05760006111e5565b306111e5565b610efe611164565b73ffffffffffffffffffffffffffffffffffffffff8116610fa1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610596565b610faa81611328565b50565b6000602082018035906001908390610fc590866122bd565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff8116600090815260016020526040812054806105ad576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610596565b611043602085612561565b156110d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c6964206d657373616765206c60448201527f656e6774680000000000000000000000000000000000000000000000000000006064820152608401610596565b6000805b85811015611122578681876110ea82602061247d565b926110f79392919061259c565b8101906111049190611ce2565b61110e908361247d565b915061111b60208261247d565b90506110d4565b50700100000000000000000000000000000000600254106111435760006002555b8060026000828254611155919061247d565b90915550505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610596565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b60408051808201909152600080825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff1681526020016112aa89610fe3565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016112df9291906125c6565b6040805180830381865afa1580156112fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131f91906126b9565b95945050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6113a5611c9a565b60006113b484600001516115e8565b6020850151909150156113ce576113ce8460200151611629565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff16815260200161142b8c610fe3565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016114679291906125c6565b60806040518083038185885af1158015611485573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bc591906126d5565b606060006114b8858561174b565b9050826020015163ffffffff166000146107f45761131f81846117f3565b60008080848482816114ea576114ea612490565b919091013560f81c9150611501905060018361247d565b915060ff8116600114611540576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84828561154e82600261247d565b9261155b9392919061259c565b6115649161273d565b60f01c95945050505050565b6000808084818561158282600261247d565b9261158f9392919061259c565b6115989161273d565b60f01c90506115a860028361247d565b915061ffff8116600114611540576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000813414611625576040517f9f704120000000000000000000000000000000000000000000000000000000008152346004820152602401610596565b5090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ba9190612783565b905073ffffffffffffffffffffffffffffffffffffffff8116611709576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106bf73ffffffffffffffffffffffffffffffffffffffff8216337f000000000000000000000000000000000000000000000000000000000000000085611846565b6060600060018461175c85516118e1565b6040517fffff00000000000000000000000000000000000000000000000000000000000060f094851b8116602083015292841b83166022820152921b166024820152602601604051602081830303815290604052905060005b83518110156117eb576117e1828583815181106117d4576117d4612490565b6020026020010151611975565b91506001016117b5565b509392505050565b606082600180846000015185602001518660400151876060015188608001518960a0015160405160200161182f999897969594939291906127a0565b604051602081830303815290604052905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526118db908590611a25565b50505050565b600061ffff821115611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610596565b606060008360018460000151600161199d8760c00151516023611998919061247d565b6118e1565b6020808901516040516119b5979695949392016128f2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252908501516060860151608087015160a088015160c0890151949650611a0d958795906020016129ad565b60405160208183030381529060405291505092915050565b6000611a87826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611b399092919063ffffffff16565b9050805160001480611aa8575080806020019051810190611aa89190612a70565b611b34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610596565b505050565b60606107f48484600085856000808673ffffffffffffffffffffffffffffffffffffffff168587604051611b6d9190612a8d565b60006040518083038185875af1925050503d8060008114611baa576040519150601f19603f3d011682016040523d82523d6000602084013e611baf565b606091505b5091509150610bc58783838760608315611c51578251600003611c4a5773ffffffffffffffffffffffffffffffffffffffff85163b611c4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610596565b50816107f4565b6107f48383815115611c665781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059691906122a3565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001611cdd604051806040016040528060008152602001600081525090565b905290565b600060208284031215611cf457600080fd5b5035919050565b600060608284031215611d0d57600080fd5b50919050565b60008083601f840112611d2557600080fd5b50813567ffffffffffffffff811115611d3d57600080fd5b602083019150836020828501011115611d5557600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114610faa57600080fd5b600080600080600080600060e0888a031215611d9957600080fd5b611da38989611cfb565b965060608801359550608088013567ffffffffffffffff80821115611dc757600080fd5b611dd38b838c01611d13565b909750955060a08a01359150611de882611d5c565b90935060c08901359080821115611dfe57600080fd5b50611e0b8a828b01611d13565b989b979a50959850939692959293505050565b803563ffffffff81168114611e3257600080fd5b919050565b60008060408385031215611e4a57600080fd5b611e5383611e1e565b946020939093013593505050565b803561ffff81168114611e3257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715611ec557611ec5611e73565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611f1257611f12611e73565b604052919050565b8015158114610faa57600080fd5b67ffffffffffffffff81168114610faa57600080fd5b600082601f830112611f4f57600080fd5b8135602067ffffffffffffffff821115611f6b57611f6b611e73565b611f79818360051b01611ecb565b82815260e09283028501820192828201919087851115611f9857600080fd5b8387015b858110156120375781818a031215611fb45760008081fd5b611fbc611ea2565b611fc582611e61565b8152611fd2868301611e1e565b86820152604080830135611fe581611f1a565b90820152606082810135611ff881611f28565b908201526080612009838201611e61565b9082015260a08281013561201c81611d5c565b9082015260c082810135908201528452928401928101611f9c565b5090979650505050505050565b60006080828403121561205657600080fd5b6040516080810181811067ffffffffffffffff8211171561207957612079611e73565b604052905080823560ff8116811461209057600080fd5b815261209e60208401611e61565b602082015260408301356120b181611f28565b604082015260608301356120c481611f1a565b6060919091015292915050565b60008060008060008061010087890312156120eb57600080fd5b6120f487611e1e565b955061210260208801611e61565b9450604087013567ffffffffffffffff8082111561211f57600080fd5b61212b8a838b01611f3e565b955061213a8a60608b01612044565b945060e089013591508082111561215057600080fd5b5061215d89828a01611d13565b979a9699509497509295939492505050565b60008060008060a0858703121561218557600080fd5b61218f8686611cfb565b9350606085013567ffffffffffffffff8111156121ab57600080fd5b6121b787828801611d13565b90945092505060808501356121cb81611d5c565b939692955090935050565b600080600060c084860312156121eb57600080fd5b6121f484611e61565b9250602084013567ffffffffffffffff81111561221057600080fd5b61221c86828701611f3e565b92505061222c8560408601612044565b90509250925092565b60005b83811015612250578181015183820152602001612238565b50506000910152565b60008151808452612271816020860160208601612235565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006122b66020830184612259565b9392505050565b6000602082840312156122cf57600080fd5b6122b682611e1e565b6000602082840312156122ea57600080fd5b81356122b681611d5c565b6000806000806040858703121561230b57600080fd5b843567ffffffffffffffff8082111561232357600080fd5b61232f88838901611d13565b9096509450602087013591508082111561234857600080fd5b5061235587828801611d13565b95989497509550505050565b6000806000806040858703121561237757600080fd5b843567ffffffffffffffff8082111561238f57600080fd5b61239b88838901611d13565b909650945060208701359150808211156123b457600080fd5b818701915087601f8301126123c857600080fd5b8135818111156123d757600080fd5b8860208260051b85010111156123ec57600080fd5b95989497505060200194505050565b6000806040838503121561240e57600080fd5b61241783611e1e565b9150602083013561242781611f1a565b809150509250929050565b60006060828403121561244457600080fd5b6122b68383611cfb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156105ad576105ad61244e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b61ffff8181168382160280821691908281146124dd576124dd61244e565b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261251a57600080fd5b83018035915067ffffffffffffffff82111561253557600080fd5b602001915036819003821315611d5557600080fd5b80820281158282048414176105ad576105ad61244e565b600082612597577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b600080858511156125ac57600080fd5b838611156125b957600080fd5b5050820193919092039150565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526125fc60e0840182612259565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526126378282612259565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b60006040828403121561267c57600080fd5b6040516040810181811067ffffffffffffffff8211171561269f5761269f611e73565b604052825181526020928301519281019290925250919050565b6000604082840312156126cb57600080fd5b6122b6838361266a565b6000608082840312156126e757600080fd5b6040516060810181811067ffffffffffffffff8211171561270a5761270a611e73565b60405282518152602083015161271f81611f28565b6020820152612731846040850161266a565b60408201529392505050565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156124dd5760029490940360031b84901b1690921692915050565b60006020828403121561279557600080fd5b81516122b681611d5c565b60008a516127b2818460208f01612235565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008b60f01b166001830152808a60f81b166003830152507fffffffff000000000000000000000000000000000000000000000000000000008860e01b16600482015286151560f81b600882015261287e600982018760c01b7fffffffffffffffff000000000000000000000000000000000000000000000000169052565b6128af601182018660f01b7fffff000000000000000000000000000000000000000000000000000000000000169052565b6128e0601382018560601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b6027019b9a5050505050505050505050565b60008751612904818460208c01612235565b60f89790971b7fff00000000000000000000000000000000000000000000000000000000000000169190960190815260f094851b7fffff000000000000000000000000000000000000000000000000000000000000908116600183015293851b841660038201529190931b909116600582015260e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166007820152600b0192915050565b600087516129bf818460208c01612235565b808301905087151560f81b81527fffffffffffffffff0000000000000000000000000000000000000000000000008760c01b1660018201527fffff0000000000000000000000000000000000000000000000000000000000008660f01b1660098201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16600b8201528351612a6081601f840160208801612235565b01601f0198975050505050505050565b600060208284031215612a8257600080fd5b81516122b681611f1a565b60008251612a9f818460208701612235565b919091019291505056fea264697066735822122010a919c5b1e07edadc2a563d83e85f14afabf17ccadcbbae2d3e0cb5495175b664736f6c63430008160033",
839
+ "bytecode": "0x60c06040523480156200001157600080fd5b5060405162002d2f38038062002d2f83398101604081905262000034916200019f565b80338181818162000045816200014f565b6001600160a01b0380831660805281166200007357604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000bb57600080fd5b505af1158015620000d0573d6000803e3d6000fd5b50505050505050505050806001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000119573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013f9190620001d1565b63ffffffff1660a05250620001f9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620001b257600080fd5b81516001600160a01b0381168114620001ca57600080fd5b9392505050565b600060208284031215620001e457600080fd5b815163ffffffff81168114620001ca57600080fd5b60805160a051612adf620002506000396000818161021a0152610b3c015260008181610263015281816105b501528181610c1d01528181611250015281816113d00152818161162d01526117260152612adf6000f3fe6080604052600436106101615760003560e01c806382413eac116100bf578063ca5eb5e111610079578063f0a9e48111610056578063f0a9e481146104a8578063f2fde38b146104c8578063ff7bd03d146104e857005b8063ca5eb5e114610448578063e60c287c14610468578063eba1cf081461048857005b8063a798280f116100a7578063a798280f146103d7578063a7e0231f14610404578063bb0b6a531461041b57005b806382413eac1461037c5780638da5cb5b146103ac57005b8063416ecebf1161011b578063715018a6116100f8578063715018a6146102df57806373494d2e146102f45780637d25a05e1461034057005b8063416ecebf146102085780635e280f1114610251578063695a2fa8146102aa57005b806313137d651161014957806313137d65146101b357806317442b70146101c65780633400288b146101e857005b80630119024e1461016a57806306661abd1461019d57005b3661016857005b005b34801561017657600080fd5b5061018a610185366004611ce2565b610508565b6040519081526020015b60405180910390f35b3480156101a957600080fd5b5061018a60025481565b6101686101c1366004611d7e565b6105b3565b3480156101d257600080fd5b5060408051600181526002602082015201610194565b3480156101f457600080fd5b50610168610203366004611e37565b6106ad565b34801561021457600080fd5b5061023c7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610194565b34801561025d57600080fd5b506102857f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610194565b3480156102b657600080fd5b506102ca6102c53660046120d1565b6106c3565b60408051928352602083019190915201610194565b3480156102eb57600080fd5b50610168610731565b6103076103023660046120d1565b610745565b604080518251815260208084015167ffffffffffffffff1681830152928201518051928201929092529101516060820152608001610194565b34801561034c57600080fd5b5061036361035b366004611e37565b600092915050565b60405167ffffffffffffffff9091168152602001610194565b34801561038857600080fd5b5061039c61039736600461216f565b6107da565b6040519015158152602001610194565b3480156103b857600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610285565b3480156103e357600080fd5b506103f76103f23660046121d6565b6107fc565b60405161019491906122a3565b34801561041057600080fd5b506101686000600255565b34801561042757600080fd5b5061018a6104363660046122bd565b60016020526000908152604090205481565b34801561045457600080fd5b506101686104633660046122d8565b610bd0565b34801561047457600080fd5b506103f76104833660046122f5565b610c7c565b34801561049457600080fd5b506103f76104a3366004612361565b610d7e565b3480156104b457600080fd5b506101686104c33660046123fb565b610ed8565b3480156104d457600080fd5b506101686104e33660046122d8565b610ef6565b3480156104f457600080fd5b5061039c610503366004612432565b610fad565b60008160090361059f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c696420636f756e742061646460448201527f6974696f6e00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b816002546105ad919061247d565b92915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610624576040517f91ac5e4f000000000000000000000000000000000000000000000000000000008152336004820152602401610596565b6020870180359061063e90610639908a6122bd565b610fe3565b146106955761065060208801886122bd565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610596565b6106a487878787878787611038565b50505050505050565b6106b5611164565b6106bf82826111e5565b5050565b60008060006106d38888886107fc565b905060006107188a8388888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061123a915050565b8051602090910151909b909a5098505050505050505050565b610739611164565b6107436000611328565b565b61074d611c9a565b600061075a8787876107fc565b905060016002600082825461076f919061247d565b925050819055506107ce888286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080518082019091523481526020810191909152925033915061139d9050565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b60606000835111610869576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4c7a52656164436f756e7465723a20656d7074792072657175657374730000006044820152606401610596565b6000835167ffffffffffffffff81111561088557610885611e73565b60405190808252806020026020018201604052801561090c57816020015b6040805160e0810182526000808252602080830182905292820181905260608083018290526080830182905260a083019190915260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816108a35790505b50905060005b8451811015610a7657600085828151811061092f5761092f612490565b602002602001015190506040518060e00160405280826000015161ffff168152602001826020015163ffffffff168152602001826040015115158152602001826060015167ffffffffffffffff168152602001826080015161ffff1681526020018260a0015173ffffffffffffffffffffffffffffffffffffffff168152602001630119024e60e01b8360c001516040516024016109cf91815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290528351849084908110610a6257610a62612490565b602090810291909101015250600101610912565b508251600360ff9091161115610b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4c7a52656164436f756e7465723a20696e76616c696420636f6d70757465207460448201527f79706500000000000000000000000000000000000000000000000000000000006064820152608401610596565b60006040518060c00160405280856000015160ff168152602001600360ff16866000015160ff1614610b60577f0000000000000000000000000000000000000000000000000000000000000000610b63565b60005b63ffffffff168152602001856060015115158152602001856040015167ffffffffffffffff168152602001856020015161ffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681525090506000610bc58784846114aa565b979650505050505050565b610bd8611164565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610c6157600080fd5b505af1158015610c75573d6000803e3d6000fd5b5050505050565b606060208214610d0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e67746800000000000000000000000000000000000000000000000000006064820152608401610596565b6000610d1a86866114d6565b90506000610d2a84860186611ce2565b9050610d38826103e86124bf565b61ffff16610d4782606461247d565b610d51919061247d565b604051602001610d6391815260200190565b60405160208183030381529060405292505050949350505050565b60606000805b83811015610e8b57848482818110610d9e57610d9e612490565b9050602002810190610db091906124e5565b9050602014610e41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e67746800000000000000000000000000000000000000000000000000006064820152608401610596565b6000858583818110610e5557610e55612490565b9050602002810190610e6791906124e5565b810190610e749190611ce2565b9050610e80818461247d565b925050600101610d84565b50610e986127108261247d565b90506000610ea68787611570565b9050610eb961ffff8216620186a061254a565b610ec3908361247d565b915081604051602001610d6391815260200190565b610ee0611164565b6106bf8282610ef05760006111e5565b306111e5565b610efe611164565b73ffffffffffffffffffffffffffffffffffffffff8116610fa1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610596565b610faa81611328565b50565b6000602082018035906001908390610fc590866122bd565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff8116600090815260016020526040812054806105ad576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610596565b611043602085612561565b156110d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c6964206d657373616765206c60448201527f656e6774680000000000000000000000000000000000000000000000000000006064820152608401610596565b6000805b85811015611122578681876110ea82602061247d565b926110f79392919061259c565b8101906111049190611ce2565b61110e908361247d565b915061111b60208261247d565b90506110d4565b50700100000000000000000000000000000000600254106111435760006002555b8060026000828254611155919061247d565b90915550505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610596565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b60408051808201909152600080825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff1681526020016112aa89610fe3565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016112df9291906125c6565b6040805180830381865afa1580156112fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131f91906126b9565b95945050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6113a5611c9a565b60006113b484600001516115e8565b6020850151909150156113ce576113ce8460200151611629565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff16815260200161142b8c610fe3565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016114679291906125c6565b60806040518083038185885af1158015611485573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bc591906126d5565b606060006114b8858561174b565b9050826020015163ffffffff166000146107f45761131f81846117f3565b60008080848482816114ea576114ea612490565b919091013560f81c9150611501905060018361247d565b915060ff8116600114611540576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84828561154e82600261247d565b9261155b9392919061259c565b6115649161273d565b60f01c95945050505050565b6000808084818561158282600261247d565b9261158f9392919061259c565b6115989161273d565b60f01c90506115a860028361247d565b915061ffff8116600114611540576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000813414611625576040517f9f704120000000000000000000000000000000000000000000000000000000008152346004820152602401610596565b5090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ba9190612783565b905073ffffffffffffffffffffffffffffffffffffffff8116611709576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106bf73ffffffffffffffffffffffffffffffffffffffff8216337f000000000000000000000000000000000000000000000000000000000000000085611846565b6060600060018461175c85516118e1565b6040517fffff00000000000000000000000000000000000000000000000000000000000060f094851b8116602083015292841b83166022820152921b166024820152602601604051602081830303815290604052905060005b83518110156117eb576117e1828583815181106117d4576117d4612490565b6020026020010151611975565b91506001016117b5565b509392505050565b606082600180846000015185602001518660400151876060015188608001518960a0015160405160200161182f999897969594939291906127a0565b604051602081830303815290604052905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526118db908590611a25565b50505050565b600061ffff821115611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610596565b606060008360018460000151600161199d8760c00151516023611998919061247d565b6118e1565b6020808901516040516119b5979695949392016128f2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252908501516060860151608087015160a088015160c0890151949650611a0d958795906020016129ad565b60405160208183030381529060405291505092915050565b6000611a87826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611b399092919063ffffffff16565b9050805160001480611aa8575080806020019051810190611aa89190612a70565b611b34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610596565b505050565b60606107f48484600085856000808673ffffffffffffffffffffffffffffffffffffffff168587604051611b6d9190612a8d565b60006040518083038185875af1925050503d8060008114611baa576040519150601f19603f3d011682016040523d82523d6000602084013e611baf565b606091505b5091509150610bc58783838760608315611c51578251600003611c4a5773ffffffffffffffffffffffffffffffffffffffff85163b611c4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610596565b50816107f4565b6107f48383815115611c665781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059691906122a3565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001611cdd604051806040016040528060008152602001600081525090565b905290565b600060208284031215611cf457600080fd5b5035919050565b600060608284031215611d0d57600080fd5b50919050565b60008083601f840112611d2557600080fd5b50813567ffffffffffffffff811115611d3d57600080fd5b602083019150836020828501011115611d5557600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114610faa57600080fd5b600080600080600080600060e0888a031215611d9957600080fd5b611da38989611cfb565b965060608801359550608088013567ffffffffffffffff80821115611dc757600080fd5b611dd38b838c01611d13565b909750955060a08a01359150611de882611d5c565b90935060c08901359080821115611dfe57600080fd5b50611e0b8a828b01611d13565b989b979a50959850939692959293505050565b803563ffffffff81168114611e3257600080fd5b919050565b60008060408385031215611e4a57600080fd5b611e5383611e1e565b946020939093013593505050565b803561ffff81168114611e3257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715611ec557611ec5611e73565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611f1257611f12611e73565b604052919050565b8015158114610faa57600080fd5b67ffffffffffffffff81168114610faa57600080fd5b600082601f830112611f4f57600080fd5b8135602067ffffffffffffffff821115611f6b57611f6b611e73565b611f79818360051b01611ecb565b82815260e09283028501820192828201919087851115611f9857600080fd5b8387015b858110156120375781818a031215611fb45760008081fd5b611fbc611ea2565b611fc582611e61565b8152611fd2868301611e1e565b86820152604080830135611fe581611f1a565b90820152606082810135611ff881611f28565b908201526080612009838201611e61565b9082015260a08281013561201c81611d5c565b9082015260c082810135908201528452928401928101611f9c565b5090979650505050505050565b60006080828403121561205657600080fd5b6040516080810181811067ffffffffffffffff8211171561207957612079611e73565b604052905080823560ff8116811461209057600080fd5b815261209e60208401611e61565b602082015260408301356120b181611f28565b604082015260608301356120c481611f1a565b6060919091015292915050565b60008060008060008061010087890312156120eb57600080fd5b6120f487611e1e565b955061210260208801611e61565b9450604087013567ffffffffffffffff8082111561211f57600080fd5b61212b8a838b01611f3e565b955061213a8a60608b01612044565b945060e089013591508082111561215057600080fd5b5061215d89828a01611d13565b979a9699509497509295939492505050565b60008060008060a0858703121561218557600080fd5b61218f8686611cfb565b9350606085013567ffffffffffffffff8111156121ab57600080fd5b6121b787828801611d13565b90945092505060808501356121cb81611d5c565b939692955090935050565b600080600060c084860312156121eb57600080fd5b6121f484611e61565b9250602084013567ffffffffffffffff81111561221057600080fd5b61221c86828701611f3e565b92505061222c8560408601612044565b90509250925092565b60005b83811015612250578181015183820152602001612238565b50506000910152565b60008151808452612271816020860160208601612235565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006122b66020830184612259565b9392505050565b6000602082840312156122cf57600080fd5b6122b682611e1e565b6000602082840312156122ea57600080fd5b81356122b681611d5c565b6000806000806040858703121561230b57600080fd5b843567ffffffffffffffff8082111561232357600080fd5b61232f88838901611d13565b9096509450602087013591508082111561234857600080fd5b5061235587828801611d13565b95989497509550505050565b6000806000806040858703121561237757600080fd5b843567ffffffffffffffff8082111561238f57600080fd5b61239b88838901611d13565b909650945060208701359150808211156123b457600080fd5b818701915087601f8301126123c857600080fd5b8135818111156123d757600080fd5b8860208260051b85010111156123ec57600080fd5b95989497505060200194505050565b6000806040838503121561240e57600080fd5b61241783611e1e565b9150602083013561242781611f1a565b809150509250929050565b60006060828403121561244457600080fd5b6122b68383611cfb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156105ad576105ad61244e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b61ffff8181168382160280821691908281146124dd576124dd61244e565b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261251a57600080fd5b83018035915067ffffffffffffffff82111561253557600080fd5b602001915036819003821315611d5557600080fd5b80820281158282048414176105ad576105ad61244e565b600082612597577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b600080858511156125ac57600080fd5b838611156125b957600080fd5b5050820193919092039150565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526125fc60e0840182612259565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526126378282612259565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b60006040828403121561267c57600080fd5b6040516040810181811067ffffffffffffffff8211171561269f5761269f611e73565b604052825181526020928301519281019290925250919050565b6000604082840312156126cb57600080fd5b6122b6838361266a565b6000608082840312156126e757600080fd5b6040516060810181811067ffffffffffffffff8211171561270a5761270a611e73565b60405282518152602083015161271f81611f28565b6020820152612731846040850161266a565b60408201529392505050565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156124dd5760029490940360031b84901b1690921692915050565b60006020828403121561279557600080fd5b81516122b681611d5c565b60008a516127b2818460208f01612235565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008b60f01b166001830152808a60f81b166003830152507fffffffff000000000000000000000000000000000000000000000000000000008860e01b16600482015286151560f81b600882015261287e600982018760c01b7fffffffffffffffff000000000000000000000000000000000000000000000000169052565b6128af601182018660f01b7fffff000000000000000000000000000000000000000000000000000000000000169052565b6128e0601382018560601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b6027019b9a5050505050505050505050565b60008751612904818460208c01612235565b60f89790971b7fff00000000000000000000000000000000000000000000000000000000000000169190960190815260f094851b7fffff000000000000000000000000000000000000000000000000000000000000908116600183015293851b841660038201529190931b909116600582015260e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166007820152600b0192915050565b600087516129bf818460208c01612235565b808301905087151560f81b81527fffffffffffffffff0000000000000000000000000000000000000000000000008760c01b1660018201527fffff0000000000000000000000000000000000000000000000000000000000008660f01b1660098201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16600b8201528351612a6081601f840160208801612235565b01601f0198975050505050505050565b600060208284031215612a8257600080fd5b81516122b681611f1a565b60008251612a9f818460208701612235565b919091019291505056fea2646970667358221220ca66e359ce5e6fc24840c1c2323704489dac99ee101e0d4d92c3f06ad86f45a064736f6c63430008160033",
840
+ "deployedBytecode": "0x6080604052600436106101615760003560e01c806382413eac116100bf578063ca5eb5e111610079578063f0a9e48111610056578063f0a9e481146104a8578063f2fde38b146104c8578063ff7bd03d146104e857005b8063ca5eb5e114610448578063e60c287c14610468578063eba1cf081461048857005b8063a798280f116100a7578063a798280f146103d7578063a7e0231f14610404578063bb0b6a531461041b57005b806382413eac1461037c5780638da5cb5b146103ac57005b8063416ecebf1161011b578063715018a6116100f8578063715018a6146102df57806373494d2e146102f45780637d25a05e1461034057005b8063416ecebf146102085780635e280f1114610251578063695a2fa8146102aa57005b806313137d651161014957806313137d65146101b357806317442b70146101c65780633400288b146101e857005b80630119024e1461016a57806306661abd1461019d57005b3661016857005b005b34801561017657600080fd5b5061018a610185366004611ce2565b610508565b6040519081526020015b60405180910390f35b3480156101a957600080fd5b5061018a60025481565b6101686101c1366004611d7e565b6105b3565b3480156101d257600080fd5b5060408051600181526002602082015201610194565b3480156101f457600080fd5b50610168610203366004611e37565b6106ad565b34801561021457600080fd5b5061023c7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610194565b34801561025d57600080fd5b506102857f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610194565b3480156102b657600080fd5b506102ca6102c53660046120d1565b6106c3565b60408051928352602083019190915201610194565b3480156102eb57600080fd5b50610168610731565b6103076103023660046120d1565b610745565b604080518251815260208084015167ffffffffffffffff1681830152928201518051928201929092529101516060820152608001610194565b34801561034c57600080fd5b5061036361035b366004611e37565b600092915050565b60405167ffffffffffffffff9091168152602001610194565b34801561038857600080fd5b5061039c61039736600461216f565b6107da565b6040519015158152602001610194565b3480156103b857600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610285565b3480156103e357600080fd5b506103f76103f23660046121d6565b6107fc565b60405161019491906122a3565b34801561041057600080fd5b506101686000600255565b34801561042757600080fd5b5061018a6104363660046122bd565b60016020526000908152604090205481565b34801561045457600080fd5b506101686104633660046122d8565b610bd0565b34801561047457600080fd5b506103f76104833660046122f5565b610c7c565b34801561049457600080fd5b506103f76104a3366004612361565b610d7e565b3480156104b457600080fd5b506101686104c33660046123fb565b610ed8565b3480156104d457600080fd5b506101686104e33660046122d8565b610ef6565b3480156104f457600080fd5b5061039c610503366004612432565b610fad565b60008160090361059f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c696420636f756e742061646460448201527f6974696f6e00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b816002546105ad919061247d565b92915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610624576040517f91ac5e4f000000000000000000000000000000000000000000000000000000008152336004820152602401610596565b6020870180359061063e90610639908a6122bd565b610fe3565b146106955761065060208801886122bd565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610596565b6106a487878787878787611038565b50505050505050565b6106b5611164565b6106bf82826111e5565b5050565b60008060006106d38888886107fc565b905060006107188a8388888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925061123a915050565b8051602090910151909b909a5098505050505050505050565b610739611164565b6107436000611328565b565b61074d611c9a565b600061075a8787876107fc565b905060016002600082825461076f919061247d565b925050819055506107ce888286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080518082019091523481526020810191909152925033915061139d9050565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b60606000835111610869576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4c7a52656164436f756e7465723a20656d7074792072657175657374730000006044820152606401610596565b6000835167ffffffffffffffff81111561088557610885611e73565b60405190808252806020026020018201604052801561090c57816020015b6040805160e0810182526000808252602080830182905292820181905260608083018290526080830182905260a083019190915260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816108a35790505b50905060005b8451811015610a7657600085828151811061092f5761092f612490565b602002602001015190506040518060e00160405280826000015161ffff168152602001826020015163ffffffff168152602001826040015115158152602001826060015167ffffffffffffffff168152602001826080015161ffff1681526020018260a0015173ffffffffffffffffffffffffffffffffffffffff168152602001630119024e60e01b8360c001516040516024016109cf91815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290528351849084908110610a6257610a62612490565b602090810291909101015250600101610912565b508251600360ff9091161115610b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4c7a52656164436f756e7465723a20696e76616c696420636f6d70757465207460448201527f79706500000000000000000000000000000000000000000000000000000000006064820152608401610596565b60006040518060c00160405280856000015160ff168152602001600360ff16866000015160ff1614610b60577f0000000000000000000000000000000000000000000000000000000000000000610b63565b60005b63ffffffff168152602001856060015115158152602001856040015167ffffffffffffffff168152602001856020015161ffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681525090506000610bc58784846114aa565b979650505050505050565b610bd8611164565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015610c6157600080fd5b505af1158015610c75573d6000803e3d6000fd5b5050505050565b606060208214610d0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e67746800000000000000000000000000000000000000000000000000006064820152608401610596565b6000610d1a86866114d6565b90506000610d2a84860186611ce2565b9050610d38826103e86124bf565b61ffff16610d4782606461247d565b610d51919061247d565b604051602001610d6391815260200190565b60405160208183030381529060405292505050949350505050565b60606000805b83811015610e8b57848482818110610d9e57610d9e612490565b9050602002810190610db091906124e5565b9050602014610e41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4c7a52656164436f756e7465723a20696e76616c696420726573706f6e73652060448201527f6c656e67746800000000000000000000000000000000000000000000000000006064820152608401610596565b6000858583818110610e5557610e55612490565b9050602002810190610e6791906124e5565b810190610e749190611ce2565b9050610e80818461247d565b925050600101610d84565b50610e986127108261247d565b90506000610ea68787611570565b9050610eb961ffff8216620186a061254a565b610ec3908361247d565b915081604051602001610d6391815260200190565b610ee0611164565b6106bf8282610ef05760006111e5565b306111e5565b610efe611164565b73ffffffffffffffffffffffffffffffffffffffff8116610fa1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610596565b610faa81611328565b50565b6000602082018035906001908390610fc590866122bd565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff8116600090815260016020526040812054806105ad576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610596565b611043602085612561565b156110d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c7a52656164436f756e7465723a20696e76616c6964206d657373616765206c60448201527f656e6774680000000000000000000000000000000000000000000000000000006064820152608401610596565b6000805b85811015611122578681876110ea82602061247d565b926110f79392919061259c565b8101906111049190611ce2565b61110e908361247d565b915061111b60208261247d565b90506110d4565b50700100000000000000000000000000000000600254106111435760006002555b8060026000828254611155919061247d565b90915550505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610596565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b60408051808201909152600080825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff1681526020016112aa89610fe3565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016112df9291906125c6565b6040805180830381865afa1580156112fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131f91906126b9565b95945050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6113a5611c9a565b60006113b484600001516115e8565b6020850151909150156113ce576113ce8460200151611629565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff16815260200161142b8c610fe3565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016114679291906125c6565b60806040518083038185885af1158015611485573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bc591906126d5565b606060006114b8858561174b565b9050826020015163ffffffff166000146107f45761131f81846117f3565b60008080848482816114ea576114ea612490565b919091013560f81c9150611501905060018361247d565b915060ff8116600114611540576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84828561154e82600261247d565b9261155b9392919061259c565b6115649161273d565b60f01c95945050505050565b6000808084818561158282600261247d565b9261158f9392919061259c565b6115989161273d565b60f01c90506115a860028361247d565b915061ffff8116600114611540576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000813414611625576040517f9f704120000000000000000000000000000000000000000000000000000000008152346004820152602401610596565b5090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ba9190612783565b905073ffffffffffffffffffffffffffffffffffffffff8116611709576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106bf73ffffffffffffffffffffffffffffffffffffffff8216337f000000000000000000000000000000000000000000000000000000000000000085611846565b6060600060018461175c85516118e1565b6040517fffff00000000000000000000000000000000000000000000000000000000000060f094851b8116602083015292841b83166022820152921b166024820152602601604051602081830303815290604052905060005b83518110156117eb576117e1828583815181106117d4576117d4612490565b6020026020010151611975565b91506001016117b5565b509392505050565b606082600180846000015185602001518660400151876060015188608001518960a0015160405160200161182f999897969594939291906127a0565b604051602081830303815290604052905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526118db908590611a25565b50505050565b600061ffff821115611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610596565b606060008360018460000151600161199d8760c00151516023611998919061247d565b6118e1565b6020808901516040516119b5979695949392016128f2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252908501516060860151608087015160a088015160c0890151949650611a0d958795906020016129ad565b60405160208183030381529060405291505092915050565b6000611a87826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611b399092919063ffffffff16565b9050805160001480611aa8575080806020019051810190611aa89190612a70565b611b34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610596565b505050565b60606107f48484600085856000808673ffffffffffffffffffffffffffffffffffffffff168587604051611b6d9190612a8d565b60006040518083038185875af1925050503d8060008114611baa576040519150601f19603f3d011682016040523d82523d6000602084013e611baf565b606091505b5091509150610bc58783838760608315611c51578251600003611c4a5773ffffffffffffffffffffffffffffffffffffffff85163b611c4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610596565b50816107f4565b6107f48383815115611c665781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059691906122a3565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001611cdd604051806040016040528060008152602001600081525090565b905290565b600060208284031215611cf457600080fd5b5035919050565b600060608284031215611d0d57600080fd5b50919050565b60008083601f840112611d2557600080fd5b50813567ffffffffffffffff811115611d3d57600080fd5b602083019150836020828501011115611d5557600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114610faa57600080fd5b600080600080600080600060e0888a031215611d9957600080fd5b611da38989611cfb565b965060608801359550608088013567ffffffffffffffff80821115611dc757600080fd5b611dd38b838c01611d13565b909750955060a08a01359150611de882611d5c565b90935060c08901359080821115611dfe57600080fd5b50611e0b8a828b01611d13565b989b979a50959850939692959293505050565b803563ffffffff81168114611e3257600080fd5b919050565b60008060408385031215611e4a57600080fd5b611e5383611e1e565b946020939093013593505050565b803561ffff81168114611e3257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715611ec557611ec5611e73565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611f1257611f12611e73565b604052919050565b8015158114610faa57600080fd5b67ffffffffffffffff81168114610faa57600080fd5b600082601f830112611f4f57600080fd5b8135602067ffffffffffffffff821115611f6b57611f6b611e73565b611f79818360051b01611ecb565b82815260e09283028501820192828201919087851115611f9857600080fd5b8387015b858110156120375781818a031215611fb45760008081fd5b611fbc611ea2565b611fc582611e61565b8152611fd2868301611e1e565b86820152604080830135611fe581611f1a565b90820152606082810135611ff881611f28565b908201526080612009838201611e61565b9082015260a08281013561201c81611d5c565b9082015260c082810135908201528452928401928101611f9c565b5090979650505050505050565b60006080828403121561205657600080fd5b6040516080810181811067ffffffffffffffff8211171561207957612079611e73565b604052905080823560ff8116811461209057600080fd5b815261209e60208401611e61565b602082015260408301356120b181611f28565b604082015260608301356120c481611f1a565b6060919091015292915050565b60008060008060008061010087890312156120eb57600080fd5b6120f487611e1e565b955061210260208801611e61565b9450604087013567ffffffffffffffff8082111561211f57600080fd5b61212b8a838b01611f3e565b955061213a8a60608b01612044565b945060e089013591508082111561215057600080fd5b5061215d89828a01611d13565b979a9699509497509295939492505050565b60008060008060a0858703121561218557600080fd5b61218f8686611cfb565b9350606085013567ffffffffffffffff8111156121ab57600080fd5b6121b787828801611d13565b90945092505060808501356121cb81611d5c565b939692955090935050565b600080600060c084860312156121eb57600080fd5b6121f484611e61565b9250602084013567ffffffffffffffff81111561221057600080fd5b61221c86828701611f3e565b92505061222c8560408601612044565b90509250925092565b60005b83811015612250578181015183820152602001612238565b50506000910152565b60008151808452612271816020860160208601612235565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006122b66020830184612259565b9392505050565b6000602082840312156122cf57600080fd5b6122b682611e1e565b6000602082840312156122ea57600080fd5b81356122b681611d5c565b6000806000806040858703121561230b57600080fd5b843567ffffffffffffffff8082111561232357600080fd5b61232f88838901611d13565b9096509450602087013591508082111561234857600080fd5b5061235587828801611d13565b95989497509550505050565b6000806000806040858703121561237757600080fd5b843567ffffffffffffffff8082111561238f57600080fd5b61239b88838901611d13565b909650945060208701359150808211156123b457600080fd5b818701915087601f8301126123c857600080fd5b8135818111156123d757600080fd5b8860208260051b85010111156123ec57600080fd5b95989497505060200194505050565b6000806040838503121561240e57600080fd5b61241783611e1e565b9150602083013561242781611f1a565b809150509250929050565b60006060828403121561244457600080fd5b6122b68383611cfb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156105ad576105ad61244e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b61ffff8181168382160280821691908281146124dd576124dd61244e565b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261251a57600080fd5b83018035915067ffffffffffffffff82111561253557600080fd5b602001915036819003821315611d5557600080fd5b80820281158282048414176105ad576105ad61244e565b600082612597577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b600080858511156125ac57600080fd5b838611156125b957600080fd5b5050820193919092039150565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526125fc60e0840182612259565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526126378282612259565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b60006040828403121561267c57600080fd5b6040516040810181811067ffffffffffffffff8211171561269f5761269f611e73565b604052825181526020928301519281019290925250919050565b6000604082840312156126cb57600080fd5b6122b6838361266a565b6000608082840312156126e757600080fd5b6040516060810181811067ffffffffffffffff8211171561270a5761270a611e73565b60405282518152602083015161271f81611f28565b6020820152612731846040850161266a565b60408201529392505050565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156124dd5760029490940360031b84901b1690921692915050565b60006020828403121561279557600080fd5b81516122b681611d5c565b60008a516127b2818460208f01612235565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808c60f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008b60f01b166001830152808a60f81b166003830152507fffffffff000000000000000000000000000000000000000000000000000000008860e01b16600482015286151560f81b600882015261287e600982018760c01b7fffffffffffffffff000000000000000000000000000000000000000000000000169052565b6128af601182018660f01b7fffff000000000000000000000000000000000000000000000000000000000000169052565b6128e0601382018560601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169052565b6027019b9a5050505050505050505050565b60008751612904818460208c01612235565b60f89790971b7fff00000000000000000000000000000000000000000000000000000000000000169190960190815260f094851b7fffff000000000000000000000000000000000000000000000000000000000000908116600183015293851b841660038201529190931b909116600582015260e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166007820152600b0192915050565b600087516129bf818460208c01612235565b808301905087151560f81b81527fffffffffffffffff0000000000000000000000000000000000000000000000008760c01b1660018201527fffff0000000000000000000000000000000000000000000000000000000000008660f01b1660098201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16600b8201528351612a6081601f840160208801612235565b01601f0198975050505050505050565b600060208284031215612a8257600080fd5b81516122b681611f1a565b60008251612a9f818460208701612235565b919091019291505056fea2646970667358221220ca66e359ce5e6fc24840c1c2323704489dac99ee101e0d4d92c3f06ad86f45a064736f6c63430008160033",
841
841
  "linkReferences": {},
842
842
  "deployedLinkReferences": {}
843
843
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "_format": "hh-sol-artifact-1",
3
- "contractName": "CmdCodecV1",
4
- "sourceName": "contracts/oapp/libs/CmdCodecV1.sol",
3
+ "contractName": "ReadCodecV1",
4
+ "sourceName": "contracts/oapp/libs/ReadCodecV1.sol",
5
5
  "abi": [
6
6
  {
7
7
  "inputs": [],
@@ -14,8 +14,8 @@
14
14
  "type": "error"
15
15
  }
16
16
  ],
17
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122097ec36c9b6acac4b16bd84177d870db6b14180ea834ce11d8a52bf04340824b164736f6c63430008160033",
18
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122097ec36c9b6acac4b16bd84177d870db6b14180ea834ce11d8a52bf04340824b164736f6c63430008160033",
17
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c23c12bf70bda2a4d1d095b1e968ea866963d21102e60783d7fd8c40375312d464736f6c63430008160033",
18
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c23c12bf70bda2a4d1d095b1e968ea866963d21102e60783d7fd8c40375312d464736f6c63430008160033",
19
19
  "linkReferences": {},
20
20
  "deployedLinkReferences": {}
21
21
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.0;
3
3
 
4
- import { EVMCallRequestV1, EVMCallComputeV1, CmdCodecV1 } from "../libs/CmdCodecV1.sol";
4
+ import { EVMCallRequestV1, EVMCallComputeV1, ReadCodecV1 } from "../libs/ReadCodecV1.sol";
5
5
 
6
6
  contract CmdCodecV1Mock {
7
7
  function decode(
@@ -11,14 +11,14 @@ contract CmdCodecV1Mock {
11
11
  pure
12
12
  returns (uint16 appCmdLabel, EVMCallRequestV1[] memory evmRequests, EVMCallComputeV1 memory compute)
13
13
  {
14
- return CmdCodecV1.decode(_cmd);
14
+ return ReadCodecV1.decode(_cmd);
15
15
  }
16
16
 
17
17
  function encode(
18
18
  uint16 _appCmdLabel,
19
19
  EVMCallRequestV1[] calldata _evmRequests
20
20
  ) external pure returns (bytes memory) {
21
- return CmdCodecV1.encode(_appCmdLabel, _evmRequests);
21
+ return ReadCodecV1.encode(_appCmdLabel, _evmRequests);
22
22
  }
23
23
 
24
24
  function encode(
@@ -26,6 +26,6 @@ contract CmdCodecV1Mock {
26
26
  EVMCallRequestV1[] calldata _evmRequests,
27
27
  EVMCallComputeV1 calldata _evmCompute
28
28
  ) external pure returns (bytes memory) {
29
- return CmdCodecV1.encode(_appCmdLabel, _evmRequests, _evmCompute);
29
+ return ReadCodecV1.encode(_appCmdLabel, _evmRequests, _evmCompute);
30
30
  }
31
31
  }
@@ -3,7 +3,7 @@
3
3
  pragma solidity ^0.8.20;
4
4
 
5
5
  import { ILayerZeroEndpointV2, MessagingFee, MessagingReceipt, Origin } from "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol";
6
- import { CmdCodecV1, EVMCallComputeV1, EVMCallRequestV1 } from "../libs/CmdCodecV1.sol";
6
+ import { ReadCodecV1, EVMCallComputeV1, EVMCallRequestV1 } from "../libs/ReadCodecV1.sol";
7
7
  import { IOAppComputer } from "../interfaces/IOAppComputer.sol";
8
8
 
9
9
  import { OAppRead } from "../OAppRead.sol";
@@ -100,7 +100,7 @@ contract LzReadCounter is OAppRead, IOAppComputer {
100
100
  confirmations: _computeSetting.computeConfirmations,
101
101
  to: address(this)
102
102
  });
103
- bytes memory cmd = CmdCodecV1.encode(appLabel, readRequests, evmCompute);
103
+ bytes memory cmd = ReadCodecV1.encode(appLabel, readRequests, evmCompute);
104
104
 
105
105
  return cmd;
106
106
  }
@@ -112,7 +112,7 @@ contract LzReadCounter is OAppRead, IOAppComputer {
112
112
 
113
113
  function lzMap(bytes calldata _request, bytes calldata _response) external pure returns (bytes memory) {
114
114
  require(_response.length == 32, "LzReadCounter: invalid response length");
115
- uint16 requestId = CmdCodecV1.decodeRequestV1AppRequestLabel(_request);
115
+ uint16 requestId = ReadCodecV1.decodeRequestV1AppRequestLabel(_request);
116
116
  uint256 countNum = abi.decode(_response, (uint256));
117
117
  return abi.encode(countNum + 100 + requestId * 1000); // map behavior
118
118
  }
@@ -126,7 +126,7 @@ contract LzReadCounter is OAppRead, IOAppComputer {
126
126
  }
127
127
  total += 10000; // reduce behavior
128
128
 
129
- uint16 cmdAppLabel = CmdCodecV1.decodeCmdAppLabel(_cmd);
129
+ uint16 cmdAppLabel = ReadCodecV1.decodeCmdAppLabel(_cmd);
130
130
  total += uint256(cmdAppLabel) * 100000; // cmdAppLabel behavior
131
131
 
132
132
  return abi.encode(total);
@@ -23,7 +23,7 @@ struct EVMCallComputeV1 {
23
23
  address to; // Address of the target contract on the target chain
24
24
  }
25
25
 
26
- library CmdCodecV1 {
26
+ library ReadCodecV1 {
27
27
  using SafeCast for uint256;
28
28
 
29
29
  uint16 internal constant CMD_VERSION = 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerzerolabs/lz-evm-oapp-v2",
3
- "version": "3.0.8",
3
+ "version": "3.0.9",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "artifacts/contracts/**/!(*.dbg).json",
@@ -11,9 +11,9 @@
11
11
  },
12
12
  "dependencies": {},
13
13
  "devDependencies": {
14
- "@layerzerolabs/lz-evm-messagelib-v2": "^3.0.8",
15
- "@layerzerolabs/lz-evm-protocol-v2": "^3.0.8",
16
- "@layerzerolabs/lz-evm-v1-0.7": "^3.0.8",
14
+ "@layerzerolabs/lz-evm-messagelib-v2": "^3.0.9",
15
+ "@layerzerolabs/lz-evm-protocol-v2": "^3.0.9",
16
+ "@layerzerolabs/lz-evm-v1-0.7": "^3.0.9",
17
17
  "@openzeppelin/contracts": "^4.8.1",
18
18
  "@openzeppelin/contracts-upgradeable": "^4.8.1",
19
19
  "hardhat-deploy": "^0.12.4",
@@ -21,9 +21,9 @@
21
21
  "solidity-bytes-utils": "^0.8.0"
22
22
  },
23
23
  "peerDependencies": {
24
- "@layerzerolabs/lz-evm-messagelib-v2": "^3.0.8",
25
- "@layerzerolabs/lz-evm-protocol-v2": "^3.0.8",
26
- "@layerzerolabs/lz-evm-v1-0.7": "^3.0.8",
24
+ "@layerzerolabs/lz-evm-messagelib-v2": "^3.0.9",
25
+ "@layerzerolabs/lz-evm-protocol-v2": "^3.0.9",
26
+ "@layerzerolabs/lz-evm-v1-0.7": "^3.0.9",
27
27
  "@openzeppelin/contracts": "^4.8.1 || ^5.0.0",
28
28
  "@openzeppelin/contracts-upgradeable": "^4.8.1 || ^5.0.0",
29
29
  "hardhat-deploy": "^0.12.4",